{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 任务5 模型融合(3天)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " 将特征放进模型中预测，并将预测结果作为新的特征加入原有特征中再经过模型预测结果（可以反复预测多次将结果加入最后的特征中）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "    folds = KFold(n_splits=5, shuffle=True, random_state=2333)\n",
    "   \n",
    "    \"===================================第一轮========================================================\"\n",
    "    y_pre_list = []\n",
    "    r2_list = []\n",
    "    train_feat = pd.Series()\n",
    "    for fold_, (trn_idx, val_idx) in enumerate(folds.split(feature.values, label)):\n",
    "        print(\"fold {}\".format(fold_))\n",
    "        trn_data = lgb.Dataset(feature.iloc[trn_idx], label[trn_idx], categorical_feature=categorical_feats)\n",
    "        val_data = lgb.Dataset(feature.iloc[val_idx], label[val_idx], categorical_feature=categorical_feats)\n",
    "\n",
    "        num_round = 10000\n",
    "        clf = lgb.train(params, trn_data, num_round,valid_sets=[trn_data, val_data], verbose_eval=500,\n",
    "                    early_stopping_rounds=200)\n",
    "        y_pre = clf.predict(feature.iloc[val_idx], num_iteration=clf.best_iteration)\n",
    "        r2 = r2_score(y_pre,label[val_idx])\n",
    "        r2_list.append(r2)\n",
    "        train_feat = train_feat.append(pd.Series(y_pre,index=val_idx))\n",
    "        y_pre_test = clf.predict(test,num_iteration=clf.best_iteration)\n",
    "        y_pre_list.append(y_pre_test)\n",
    "    print('r2 score{:}'.format(r2))\n",
    "    print('r2:{:}'.format(np.mean(r2_list)))\n",
    "\n",
    "    y_pred_final=  (y_pre_list[0]+y_pre_list[1]+y_pre_list[2]+y_pre_list[3]+y_pre_list[4])/5\n",
    "    feature['pre'] = train_feat\n",
    "    test['pre'] = y_pred_final\n",
    "    \"===================================第二轮========================================================\"\n",
    "    y_pre_list = []\n",
    "    r2_list = []\n",
    "    train_feat = pd.Series()\n",
    "    for fold_, (trn_idx, val_idx) in enumerate(folds.split(feature.values, label)):\n",
    "        print(\"fold {}\".format(fold_))\n",
    "        trn_data = lgb.Dataset(feature.iloc[trn_idx], label[trn_idx], categorical_feature=categorical_feats)\n",
    "        val_data = lgb.Dataset(feature.iloc[val_idx], label[val_idx], categorical_feature=categorical_feats)\n",
    "\n",
    "        num_round = 10000\n",
    "        clf = lgb.train(params, trn_data, num_round, feval=get_r2_metric,valid_sets=[trn_data, val_data], verbose_eval=500,\n",
    "                    early_stopping_rounds=200)\n",
    "        y_pre = clf.predict(feature.iloc[val_idx], num_iteration=clf.best_iteration)\n",
    "        r2 = r2_score(y_pre,label[val_idx])\n",
    "        r2_list.append(r2)\n",
    "        train_feat = train_feat.append(pd.Series(y_pre,index=val_idx))\n",
    "        y_pre_test = clf.predict(test,num_iteration=clf.best_iteration)\n",
    "        y_pre_list.append(y_pre_test)\n",
    "    print('r2 score{:}'.format(r2))\n",
    "    print('r2:{:}'.format(np.mean(r2_list)))\n",
    "    \n",
    "    y_pred_final=  (y_pre_list[0]+y_pre_list[1]+y_pre_list[2]+y_pre_list[3]+y_pre_list[4])/5\n",
    "    feature['pre_2'] = train_feat\n",
    "    test['pre_2'] = y_pred_final\n",
    "    \"=======================第三轮========================================================\"\n",
    "    y_pre_list = []\n",
    "    r2_list = []\n",
    "    train_feat = pd.Series()\n",
    "    for fold_, (trn_idx, val_idx) in enumerate(folds.split(feature.values, label)):\n",
    "        print(\"fold {}\".format(fold_))\n",
    "        trn_data = lgb.Dataset(feature.iloc[trn_idx], label[trn_idx], categorical_feature=categorical_feats)\n",
    "        val_data = lgb.Dataset(feature.iloc[val_idx], label[val_idx], categorical_feature=categorical_feats)\n",
    "\n",
    "        num_round = 10000\n",
    "        clf = lgb.train(params, trn_data, num_round, feval=get_r2_metric,valid_sets=[trn_data, val_data], verbose_eval=500,\n",
    "                    early_stopping_rounds=200)\n",
    "        y_pre = clf.predict(feature.iloc[val_idx], num_iteration=clf.best_iteration)\n",
    "        r2 = r2_score(y_pre,label[val_idx])\n",
    "        r2_list.append(r2)\n",
    "        train_feat = train_feat.append(pd.Series(y_pre,index=val_idx))\n",
    "        y_pre_test = clf.predict(test,num_iteration=clf.best_iteration)\n",
    "        y_pre_list.append(y_pre_test)\n",
    "    print('r2 score{:}'.format(r2))\n",
    "    print('r2:{:}'.format(np.mean(r2_list)))\n",
    "    \n",
    "    y_pred_final=  (y_pre_list[0]+y_pre_list[1]+y_pre_list[2]+y_pre_list[3]+y_pre_list[4])/5\n",
    "    \n",
    "    return y_pred_final\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T12:50:18.774546Z",
     "start_time": "2019-12-24T12:50:18.769559Z"
    }
   },
   "source": [
    "# pre1-pren分别是n组模型预测出来的结果，将其进行加权融合\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "pre = (pre1 + pre2 + pre3 +...+pren )/n\n",
    "\n",
    "pd.DataFrame(pre).to_csv(\"pre.csv\",header=None,index=None)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# blending\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T12:50:55.020619Z",
     "start_time": "2019-12-24T12:50:55.004659Z"
    }
   },
   "outputs": [],
   "source": [
    "def blend(train,test,target):\n",
    "    '''5折'''\n",
    "    # n_flods = 5\n",
    "    # skf = list(StratifiedKFold(y, n_folds=n_flods))\n",
    "    '''切分训练数据集为d1,d2两部分'''\n",
    "    X_d1, X_d2, y_d1, y_d2 = train_test_split(train, target, test_size=0.5, random_state=914)\n",
    "\n",
    "    train_ = np.zeros((X_d2.shape[0],len(clfs*3)))\n",
    "    test_ = np.zeros((test.shape[0],len(clfs*3)))\n",
    "\n",
    "    for j,clf in enumerate(clfs):\n",
    "        '''依次训练各个单模型'''\n",
    "        # print(j, clf)\n",
    "        '''使用第1个部分作为预测，第2部分来训练模型，获得其预测的输出作为第2部分的新特征。'''\n",
    "        # X_train, y_train, X_test, y_test = X[train], y[train], X[test], y[test]\n",
    "        X_d1fillna=X_d1.fillna(0)\n",
    "        X_d2fillna = X_d2.fillna(0)\n",
    "\n",
    "        X_predictfillna= test.fillna(0)\n",
    "\n",
    "        clf.fit(X_d1fillna,y_d1)\n",
    "        y_submission = clf.predict(X_d2fillna)\n",
    "        y_test_submission = clf.predict(X_predictfillna)\n",
    "\n",
    "        train_[:,j*3] = y_submission*y_submission\n",
    "        '''对于测试集，直接用这k个模型的预测值作为新的特征。'''\n",
    "        test_[:, j*3] = y_test_submission*y_test_submission\n",
    "\n",
    "        train_[:, j+1] =(y_submission - y_submission.min()) /(y_submission.max() - y_submission.min())\n",
    "        '''对于测试集，直接用这k个模型的预测值作为新的特征。'''\n",
    "        y_test_submission = (y_test_submission - y_test_submission.min()) / \\\n",
    "                            (y_test_submission.max() - y_test_submission.min())\n",
    "        test_[:, j+1] = y_test_submission\n",
    "\n",
    "        train_[:, j+2] = np.log(y_submission)\n",
    "        '''对于测试集，直接用这k个模型的预测值作为新的特征。'''\n",
    "        y_test_submission =np.log(y_test_submission)\n",
    "        test_[:, j+2] = y_test_submission\n",
    "\n",
    "\n",
    "\n",
    "        # print(\"val auc Score: %f\" % r2_score(y_predict, dataset_d2[:, j]))\n",
    "        print('已完成第',j)\n",
    "\n",
    "    train_.to_csv('./input/train_blending.csv', index=False)\n",
    "    test_.to_csv('./input/test_blending.csv', index=False)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Stacking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T13:06:38.251343Z",
     "start_time": "2019-12-24T13:06:33.502034Z"
    }
   },
   "outputs": [],
   "source": [
    "#!pip install mlxtend\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import itertools\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.gridspec as gridspec\n",
    "from sklearn import datasets\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.naive_bayes import GaussianNB \n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from mlxtend.classifier import StackingClassifier\n",
    "from sklearn.model_selection import cross_val_score, train_test_split\n",
    "from mlxtend.plotting import plot_learning_curves\n",
    "from mlxtend.plotting import plot_decision_regions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T13:08:30.528730Z",
     "start_time": "2019-12-24T13:08:02.781935Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.91 (+/- 0.01) [KNN]\n",
      "Accuracy: 0.93 (+/- 0.05) [Random Forest]\n",
      "Accuracy: 0.92 (+/- 0.03) [Naive Bayes]\n",
      "Accuracy: 0.95 (+/- 0.03) [Stacking Classifier]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHiCAYAAAD8s1iEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXxU1f3/8deZJZN9IwEStrCv7rLUDeqCoKhULeKurcXlW6s/26/Vbrb91ta21mpdqlgXXFBxV9zABa2ggCCIoOyBhBCy75kkM3N+f0wSM5k7YSaZyWyf5+ORR8mZmzNn8jXv7+eee+65SmuNEEIIIYTwZAr3AIQQQgghIpEUSUIIIYQQBqRIEkIIIYQwIEWSEEIIIYQBKZKEEEIIIQxIkSSEEEIIYUCKJCGEEFFNKTVLKVUc7nGI2CNFkuiRUqpQKXV6l+8XKqWqlVIzlVJaKfVWt+OfUUr9vv3fs9qPebDbMZ8qpa7qj/ELIcKjPTualVINSqlSpdSTSqnUcI+rr9ozrbH9czUopWr6+f2lIOxHUiQJvymlrgQeBM4G9rU3z1BKndjDjzUCVyilCkI7OiFEBDpHa50KHA0cA9we5vEEy1Fa69T2r8xAf1gpZQnFoETwSZEk/KKUWgT8AzhTa72my0t/A/7Uw4/WAE8Cd4RudEKISKa1LgXew10sAaCUOlsp9aVSqk4pVdQxA93+WkH7jM2VSqn9SqkKpdSvu7ye1D4zVa2U2gZM7fp+SqmJSqlVSqkapdRWpdS5XV57Uin1kFLqnfaZoNVKqcFKqXvb+/tWKXVMbz6nUuonSqldSqkqpdQbSqn8Lq9ppdT/KKV2Ajvb2yYopVa2H79dKbWgy/FnKaW2KaXqlVIHlFK/UEqlAO8A+V1msvK9BiKCRook4Y/rgf8DTtNaf9HttQeBcV0vyRm4E7hAKTU+VAMUQkQupdRQYC6wq0tzI3AFkIl7dvp6pdT8bj96EjAeOA34nVJqYnv7HcDo9q8zgSu7vJcVeBNYAQwEbgSe7ZY/C4DfADlAC/AZsLH9+5eAe3rxGU8F/tLedx7u2fbnux02H5gOTGoveFYCS9vHeTHwkFJqcvuxjwHXaq3TgCnAh1rrRty/x5IuM1klgY5V+E+KJOGPM4DPgS0Gr9lxF0E+Z5PazyIfBv4YktEJISLVa0qpeqAIKKPLjLLWepXWeovW2qW1/gp4DpjZ7ef/oLVu1lpvBjYDR7W3LwDu1FpXaa2LgH91+ZkZQCpwl9a6VWv9IbAcdxHS4VWt9QattR14FbBrrZ/SWjuBF3BfGuzJxvZZqhqlVMd7Xwo8rrXeqLVuwX1p8Xvdlhr8pX3MzcA8oFBr/YTW2qG13gi8DFzYfmwb7mIqXWtd3f666GdSJAl/XAeMA/6jlFIGrz8KDFJKndNDH38FzlRKHdXDMUKI2DK/fSZkFjAB90wNAEqp6Uqpj5RS5UqpWtw5k9Pt50u7/LsJd/EDkI+78Oqwr8u/84EirbWr2+tDunx/qMu/mw2+P9wC82O11pntXz/r8r6d49BaNwCV3d6365hHANO7FFs1uAutwe2vXwCcBexTSn2slPreYcYkQkCKJOGPMtzT3ScDD3V/UWvdBvwB9yU5oyIKrXUlcG/7MUKIOKK1/hj32sS7uzQvBd4AhmmtM3DPNhvmh4GDwLAu3w/v8u8SYJhSytTt9QMBDjtQJbgLHwDaL6cN6Pa+usu/i4CPuxRbme2Xz64H0Fqv11qfh/tS3GvAMoM+RIhJkST80n7d+1RgjlLqnwaHPA3YgDk9dHMPcAIwsYdjhBCx6V7gDKVUx+LtNKBKa21XSk0DLgmgr2XA7UqprPb1Tjd2eW0t7vVOtyqlrEqpWcA5eK8PCralwNVKqaOVUjbgz8BarXWhj+OX417PeXn7OK1Kqanti84TlFKXKqUy2k9C6wBn+88dAgYopTJC/HkEUiSJALRf+z8V9zXzv3R7zYl7vUF2Dz9fh/tuOJ/HCCFik9a6HHgK+G170w3AH9vXLP2O72ZK/PEH3Je29uJeoP10l/dpBc7FvcC5Avfs9xVa62/7+hl6orX+APdnexn3TNdoYGEPx9cDs9uPKcF9afGvuE82AS4HCpVSdbgvRV7W/nPf4l6/taf9Mp3c3RZCSmuZuRNCCCGE6E5mkoQQQgghDEiRJIQQQghhQIokIYQQQggDUiQJIYQQQhiQIkkIIYQQwkBInkT8/NYlcsucEHFk4eQr/d0EMOJJfgkRX8ZmT+C4vOmGGSYzSUIIIYQQBqRIEkIIIYQwIEWSEEIIIYQBKZKEEEIIIQyEZOG2ECJwSitSSMdmsqH8fhh6/9FoWlwtNFKHVrK2WQjxnUjPL+hdhkmRJESESCGd9OR0MGkiMmM02Fw2aIIGasM9GiFEBIn4/IJeZZhcbhMiQthMtsgOGAWYtHucQgjRRcTnF/Qqw6RIEiJCKFRkBwzgHmKkD1II0d+iIr8g4AyTIkkI0WntqnVcdupVXDLzCp596LlwD0cIIQIS7AyTIkkIAYDT6eTe393P3578M0tWPsYHb3xE4c594R6WEEL4JRQZJgu3hYhC1134c2pqmrzaMzOTefilf/Sqz282bWfIiHzyh+cDcOo5s/h0xWoKxo7o01iFEKKrUOQXhCbDpEgSIgrV1DQx7rp7vdp3PHxzr/usOFTBwPyBnd/n5uXyzaZve92fEEIYCUV+QWgyTC63CSEA0Npg35BoWIgphBCEJsOkSBJCAJA7OJeykrLO78sPlpMzcEAYRySEEP4LRYZJkSSEAGDCUeMpLjzAwaKDtLW28eGbqzjxjBPCPSwhhPBLKDJM1iQJIQCwWMzc/Mcb+cUVt+FyujhrwRxGjisI97CEEMIvocgwKZKEiEKZmcmGixwzM5P71O+M709nxven96kPIYToSajyC4KfYVIkCRGF+nKbrBBChFM05ddh1yQppcYrpTZ1+apTSvXtPj0hhOgHkl9CiL447EyS1no7cDSAUsoMHABeDfG4hBCizyS/hBB9EejdbacBu7XW8qwCIUS0kfwSQgQk0DVJCwHDJ8YppRYBiwCuueMqTvvhrL6NTBzWpk+/4t1lKygvqSA3P4c5C2Zz9ElHhntYQkQqya8IIvklooHfRZJSKgE4F7jd6HWt9WJgMcDzW5cYbHspgmnTp1/xwhPLKJifR0HBRGoLG3jhiWUAEjRCdCP5FVkkv0S0CORy21xgo9b6UKgGI/z37rIVFMzPI2t0OiaziazR6RTMz+PdZSvCPTQRxe76379z3nEXctXsa8I9lGCT/Iogkl8iFEKRX4EUSRfjY6pa9L/ykgoyClI92jIKUikvqQjTiEQsmHvhmfx9yV/CPYxQkPyKIJJfIhRCkV9+FUlKqWTgDOCVoL676LXc/BxqCxs82moLG8jNzwnTiEQ41FTVcsdPfkVtdW1Q+jtq+pGkZaQFpa9IIfkVeSS/BERHfvm1Jklr3QTIky4jyJwFs93X8Oe7z8BqCxsofO0gF129wPD4eFkkGS+fs8PKF9/GUbSDFcve5ofXXhzu4UQkya/IE2h+QXz8bcfDZ+wqGvJLdtyOUh1/OO8uW8GOkiJy83O46OoFhn9Q8bJIMl4+Z4eaqlrWv72Shy7I44blK5m94CwysjLCPSwhDiuQ/IL4+NuOh8/YVbTklxRJUezok47064+n6yJJwP2/893tPYVStJ3R9OZzRrOVL77NOWMUYwclcs6Ypog+GxOiO3/zCwL/25b8inzRkl+BbiYpolCgiyQ7zmiyzkhi6h0TyTojiReeWMamT7/qj+H2WjwtBu04C7v0OHegXnpcOuvfXhm0a/tCRJJA/rYlvyJfNOWXFElxINBFktF6e248LQbtOAsbkOqeDB6QauGcMYoVy97uU79/uPFObjj/Z+zfU8SFMxby1gvvBGO4QvRJIH/bkl+RL5rySy63xYFAF0mWl1RQUDDRoy2jIJUdJUX9Mdxe681i0Gi1ec1GPiqx89xXJR7t2RUb+zRlfcf9v+7r0IQIukD+tiW/Il805ZcUSXEg0EWSHWc0HdfGITrOaAL9nNHsT0v+Hu4hCNFvAvnblvyKfNGUX1IkxYlAFknG0xmNECI6+Jthkl8imKRIEl6i9Ywm3m6hFUJ4k/wSwSRFkjAUyMxTpIi3W2iFEMYkv0SwSJEU56JxPxFfonXBphCidyS/RKhJkRTHYm16N1oXbAohAif5JfqD7JMUx6J1PxFf5iyYTeFrB6neXYfL6aJ6dx2Frx1kzoLZ4R5a1CgrKeOmhT/n8tN+xJVn/JiXHpdnworIJPklugtFfslMUhyLtendaF2wGUnMFjP/85vrGDdlLE0NTfzknOs5/uTjKBg7ItxDE8KD5JfoLhT5JUVSHIvF6d1oXLDZW5+vWsfLS1/mYFEpecMGc8ElFzBj1rQ+9Tlg4AAGDBwAQHJqMiNGD6e8tEKKJBFxJL+iW7TklxRJccJogWNP+4lEyoLISBlHpPl81ToefWQxBeflM3zkFGr21vPoI4sB+hw0HQ4WlbJz2y4mHT0hKP0J0Rfds2Dc5LGsf219ROeX0bglw6Irv6RIigO+FjhedPUCLrp6gdf0LhARCyJjbWFmML289GUKzssne0wGgPt/z3O3ByNkmhqb+d31f+DG391ASlpKn/sToi+MsmD9a+uZOm0qO1bujMj88jVuybDoyi+/iiSlVCbwH2AKoIEfaa0/69M7i37T0/4bt/3rF15/rHf97O6A9uvwdabU1zMo2TfEt4NFpQwfOcWjLXNkGtuL9vW5b0ebg99d93tOn38ap8w5uc/9hZvkV/TzlQU7Vu7ktn/9wuPYQPMLJMP6WzTll78zSfcB72qtL1RKJQDJfX5n0W8CXeAYyPG+zpT2bN3L+nXr+3QGFWsLM4Mpb9hgavbWd56JAdTsrSdv2OA+9au15q+/vJsRY0Zw0TUX9nWYkULyK8oFkgWB5oZkWP+Lpvw67BYASql04BTgsfZBtGqta4Ly7qJfdCxw7KqnBY6BHO/rNtyVr33Q59tzAx13PLngkgsofL2Eql21uJwuqnbVUvh6CRdcckGf+t3yxdeseOV9Nn72JT+eey0/nnstn3+0Nkij7n+SX7EhkCwINDckw/pfNOWXPzNJo4By4Aml1FHABuAmrXVj14OUUouARQDX3HEVp/1wVp8GJoIn0Ac+zlkwm6f//QwDZqVhyzXTUu6kclU9l19/mdex5SUVJNUM5PN/bKap3E5ybiIjZuVjb7STUZDqcWygZ1DyoErfOq7bv7z0ZbYX7SNv2GB+cu2iPl/PP3LqEXxc+H4whhgpJL9iQCBZEEh+gWRYOERTfvlTJFmAY4EbtdZrlVL3AbcBv+16kNZ6MbAY4PmtS3RQRyn6pDf7bzjtLko/qqSloQ1bqhVTi/F/KjabjR1vFVJw4WBSRyTRsK+ZHS8VYjZb+nx7ruwb0rMZs6YF7U6QGCb5FQMCzQJ/8wskw8IlWvLLnyKpGCjWWnfMWb2EO2REPwnGLaSB7L/x7rIVJI1IoPzrBtqanTjtTnKnZBsuNjRZFINPySI534YyKZLzbQz+fhY1K1sofO1gn8+g4mnfEBESkl9hFqxb4P3NgkDyCyTDRM8OWyRprUuVUkVKqfFa6+3AacC20A9NQHhuId39VSGkORl1ZR7po5Op293E3udLqaiv8zq2udHOqCNH0lBbT0tbMxarlSFH5lOzcq/h9gISFqI/SX6FV6TnF0iGiZ75e3fbjcCz7XeG7AGuDt2QRFfhuIXUoVsZu3AIGePd+0tkjE9h5MLB7Fx8wOvY3Pwc2iocDB49qLOtencdufk5cgYVII1236Cuwj2SHuj2cUYXya8wifT8AsmwYImK/IKAM8yvIklrvQk4vrdjEr0XjltItUuTOjwRXLjvf3RB6vBEtMv7P6yeFkm+8sjrrHztA+yNdhJTEjlj/mmcf+15IRt3tGtxtWBz2cCkIzNoNOBStLhaInN8Pkh+hU+k5xdIhgVLxOcX9CrDZMftCBeO5xMlpSbRuL+VtFFJaIcLpUw07m8lKTXJ8HijRZKr3/6Mr77ezMjL88gYk0rtrgbee/49AAkZHxqpgyawmWyoCEwZjabF1eIepxB+iIb8AsmwYIj0/ILeZZjSOvhT53J3SPB0vaZvtHjQ3wWRvs6IjBZV7tm6l/feeo+RC78Lh73PH+TMs89k1OSRHsfXVdYzYuFAjxCs3l3H53dvZvy1w8iakPZd+7f17Hu6nGt/fY08yyjGLJx8ZWSmYi9IfgVPsPILjDOsex4Fml9zFszm3WUryDojye8M2/N4KaMmjZT8iiFjsydwXN50wwyTmaQI5+sWUvD/+USvPPK6OzS6nREd3FdK8aEiw2e6ncmZrHz6A+yNRSSmJHLmfHfAdH/PPY/sYVBNhsf7ZRSk4nS4yBjTbY+RMak01++XZxkJESeCkV9gnGHvPvce5lctHP0/43udXy88sYy6A40U/ORoj/fzlWEp+Ym0tLSQdUaS5FeckCIpChgtHgzk+UQrX/uAkZfndZ4RZU1Ig4XwxSMbmPGLo3w+0637lLLRexacl8fud/aTd1xu53G1hQ2YLSZqdzV4nIXV7mpAmZU8y0iIONLX/ALjDBuxwMWeJSV9yi/mw6aHthteEjTKsOpv60kelCj5FUekSIpSgSyItDfaDWd1nA6Xzx1ljaa2y0sqGJgzktL9h3C0tWGxWskencHOZ4qp3l3nMZ1+/InH8dXzm2EhHlPeCZaEPu9iK4SIboEu6DbKsLSCRBwtTsM+/M2v1Jw0LGaL4X5IRhm27/Uyxp9f4Pe4RfSTIilKBbIgMjEl0XBWx2wxGfbhbHEZXp5LcNk48FUJ2Uekk2BLwtnipHxLJdm5WVSvbPbaS+SVR173mvLesXVnvy/kFEJElkAXdBtlWH2hHYvN7HFcoPl14KsSMgakc+HV5xvuh9Q9wzJsGWQMTvN6T8mv2CVFUpQK5JlAZ8w/zX1XRrdZneNPPI7C14q8+miyNzLqau/Lc9se2IdjZRsaSBxoxV7WxsGVlWTZBnDbv37h9b7nX3ue15T3pk+/4sl/PoXL5vC4k+Sq/3dFSH5PQojIE+gzzYwybN+yQyRYbF6z2L3JL1/7IXXPMMmv+CNFUpQK5JlAHX/k3Wd1ut7d1rWP+371gOHlOZfThatNU7qqirYGB9ZUC642TW1DYLeEmxNNDJw1wGNPEiFE/Aj0mWZGGTZn/nd3q0l+iVCRIimKBbIbrNGsjq8+fF6eSzAx8qLBhrf1++vdZSsYt3DEd9Ps42DA4DpZ+ChEnAl0N+ueMqwryS8RTFIkxaC+PlDS1+W5BGsCCWkWHHYnZpsZZ4uThDQL2qm562d3+/V+4diBVwgRPfo7vyxmi9/vKfkVf6RIijHBeKCkr8tzO7buxNxkwml1dT4I0lWtcOL0e9+QcOzAK4SIDv2dX+YmGxkD0v1+T8mv+GMK9wBEcHV9oKTJbHLvZTQ/j3eXrehz33MWzKZ0RRW2tiTyC/KxtSWx++UDjDxziN/vN2fBbApfO0j17jpcThfVu+sofO0gcxbM7vP4hBDRrb/zq3RFFS6H9vs9Jb/ij8wkxZhgTAf72qH7TM7koqsXeCyUNLVYGDV7qN/vF+iCTSFE/Ojv/Lro6gU8fe9Sv/duk/yKP1IkxZhgTAf72qF75dMf8O9r/+URCHf97O6A3y/QBZtCiPjQ3/kF7oInkPeU/IovUiTFmDkLZvPoXx/DaXPiaGzDkmLF3GJm0hGTuH7uz7wecGvE3mjHaXex9f692CtaScxJYNDJ2dgb7V4LHMdNHsvq51czYFaaxy2xl19/WT9/ciFEtPOVXz/55Y99PqS7u0Dya86C2cxZMJun//2MZJgwJEVSjNmzdS9tuo0hpw8gaWACzWWtFL1ezoa1Gxn346Ee08+AYciYzRaK3ytnxIWDSB2eSMN+O/teOoRCeS1wXP38apoq7bR91OqxuZoQQgTKKL8OLK9k+ZNvU1S23+sSGnhnWCD59cITy5g6bSpOu4vSjyolw4QXv/5LUEoVAvWAE3BorY8P5aBiSV9vZwX8PoMC91TzqMvzSB2ZSIIZkvMS0U5N6cfVhtPPRv1kDEgnbaaV5DwbKEjOszFoZhZFyyq8HhA5YFYabR+1ctJvjuv8+erdsm+IiBySX70XCfllS0/gm3/vYuL1I/zKsEDyi/mw8qEPOPqG8R6X2yTDRIdAyuXva60rQjaSGBSM21l9LUIE41kge6Od1IIkzEpjUmBWkDQoAWdTtwdBjknF3uh7MeTgCbnUV9ShXRplUgyekMs+1yGvBY62XDMtDW2efcu+ISLySH4FKFLyK7UgCe3Uhrto+8owf/MroyDV/fBceei28EHmFEOo6+2s8N2ZSyBnKD0tQjQKGVuyjbpdDeROSAHAYoLmQ62Yk7s9CHJXA4kpiTjaHCy/9xWGJFhQyv2a1e6k+NUSWk1tZCQqau2aWmcDukWzd8UBRs8d1tlPS7kTW6rVs2/ZN0SIqBcp+fXt40U4W13seHw/iTkJncfaK1oxtcEX/3rFow/D/HI1YGqDrY9uJznb1nlsU1WLz3ar3enV987yWi7+v6v9+uwiNvhbJGlghVJKA49orRd3P0AptQhYBHDNHVdx2g9nBW2Q0SoYt7PaG+1kjElFa3C0OrAkWHo8gyoYMZTdz+/FcW4uSYMSaD7USvGb5ThaXRxaV0XioATsh1opXl7BnPln8umrn3LhhCFceMoRnX2cNj6fqx9eSs4Z6SQPtqFLW6hYWcftC0/nP6vWUv1NNaSCxWmhclsdzjYXO9/YR960HNoanT0+qNJfWmu+WfctDocDtObgln2YXRqAltoGBqYm0tjcSpPVSoLN6vFziYMyycjP9ujPZDIzafoETCbZGiwOSX71QqTkV/XXDYwakE1ZURNZR6d1tld9WcdtC0/nt1ee7tGHr/y6beHpLNu0mWGzMqlPaCGt1ca+N8s62wtOzWJAQSqVhQ3sef0Q/7rxAubOmOTR941Pf+T3Zxexwd8i6UStdYlSaiCwUin1rdb6k64HtAfPYoDnty7RQR5nVPL3dlanw8lHS1bisrd6d+KA7Y/vx5ZtRbtcKJOJlqo2cMCKB9+gzeXizOvmYbG6/0/ZXNOA0+7iwIpKHM1OLElmnC0ucMDB96toa3RgTbFgVVZGTR7JkSdM4c2Hl/Ppkg9Q7VNJ23cVU1XSSMOLzThbXZgTTDjsmgkjBrH4hgXcsvgVDmyvZsjALJ6/9XKcThf/t/Q9Nr73NSnJSRSMHk7Z5kJWbC4M6PfV0txCBmCzWXA5XZwyejD52amgYOxZx5GTmXrYPgC+3lNCfVOLR1t5TQPv/+tVzGbPIqmsrglbZhqibxY+dGW4h9ATya9eCOR2/B1rv6Vw/Q5Q3V44TH45nS4mnXY0IyYXAMb5pZ1QWd+Mw+Riz3MHcbW5MFlNmJ0mNhRX8/+e+tDjLY3yq7XRRX5OBn9beI47v8rc+XXPovOZO2MSx38+nHtfX8WnpcWMHJzN3xae41UgASRpzYoH3+jz71ZElsYZVRx3xXTD1/wqkrTWJe3/W6aUehWYBnzS80+JOQtmu6/hz3efgdUWNhjOsry3+C1+fcpkxg/L9epjpMPOP95fxcATMsgek0zVrib2v1jGry46nd9eNou/vrKG5kY7ae0FRNKgDKZfNtgj2HatLmT/G6UkZthwNDlJzEgkd1JW57T53BvO9XjPl354G2POHED9fjuNlW2kDLBib3Dw+2ff5r/33EyeRfHaoqFcv7yJaRNHMCAjhRmTC7j2rmdYfPvlDMhICcFv039TRuUbtp97wuR+HomIBJJfveNvfgHsXr+dJZd/36v9cPlVU9/ELz/c0lkkGeVX9e46Nj20ndGnD6F8WxUNB5tIzUshd1IWhfvqWXjjtR7vaZRf2qz409J3Wf/Q/3rlF8DcGZOYOmG4O8Nu851hf7vi1N7+OkUkG+z78vFhiySlVApg0lrXt/97NvDH4I0udvmzO+vGd79g5sAMwwIJ4LdXzWHN5l2seXwvuxwaq0VxwqiR/PaqOQCd64g6GE2R1xc10GJvY/CRWQw6PR17WRtFn5TiqoZ93+4HYMjo/M7ZqPKSShrNNoadm8uwYYk0FtnZsbiYxpYqnnprDfPGmBg/0Ma8MXaWLF/NLZfO5qm31lBdWtT5vRCRQPKr9wLZXVp1D6J2h8svgIpDVZ05VLLnIFlqFLWF9Z2vW1MsNNY0cXBTOUPnDSA5fyBNJa3sf+0QjkOafd/uJyMng8ycDMA4v3Y/cxBnpcNnfgGSYcKQPzNJg4BX2/8ILMBSrfW7IR1VDOlpd9aDe0tp2lbIj3/s+w+yoqaBlsZadt84gpxUCxUNDhYsq6WyttHwbKfrFHn17joOfHyQ0o3VDDguHWUBV40DZYGsyclUfVzLyJ1FlJTXsnHPQaad5Z5uTEpPYvi5uZ2LLW0TbAw7q5X9L5XxxJuf8sGPBgBwxbEpLFi2nnknH83yj9fz7/NzuH75eq6cd2LYZ5OEaCf51Qd93V36cPmVkZrEj44aSeNO9xqlvJREGr+qJG1wcmcf21YdxJxgYsjcAaQMd28NoIYnYkk14SyxM3JnEa++uprzbr8YMM6vuqnN1H5Sy/KP17Nsgbu9I7+unHciWmvJMGHosKtYtdZ7tNZHtX9N1lrf2R8Di3WONgern3iXe688rcfjOs58clLd9WxOqoV5Y0wsWb7a8PjTf3AqXz+6iw33fk3ztzWM/14uygGDvpfJgCPSyD02jQFHpDHg2HTSUhNZcMoRnDtjAs/f8wJbP/8GAIvZQkKaBYfd6V5waXeSOTEVa6qVtIQ2/v5xNRc8UYRSinljTPzygReZOwrMrXXMHaU8xlZR08AFtz1MZW1jkH5zQvhP8iu8DpdfSinOnj6BBaccwYJTjuCuH51D884WUrMTGHFsNqnZCdhL27DZbFhSTNDmAq2hzYU5yURaaiKnHjmStZ9uor6mATDOL0uSCYdDM2+M+//ldc2vJctX89RbayTDhKGQbAGw6pn3Q9FtTCnfXcLdF8/EYjH3eNyqjTsoKf6PrnQAACAASURBVGth6ZYyj/b8Qzs6p4RrKmop2raPoq2FOA9Vc/s5p/Luxq8p/KyajL1mxg3Jpe1gK0lWaHCC1QwtB1oZO8R9ie+1VRsZl9rKpqfeZu+qzSQnJaHqrDitmpa2ZpTLTNlHdTgbHRxSNl76uoksaxtT7y8mPdlGc1MVf7o0E2dbK2eNtnDjyu/OxGQKW0Qbya/A7d+x37D92fc3cqiylns+rfVoL8jbbJgHHYuluy6iPumIiazfVciBt8tJyrLgdIHZBE1Fdo4dMoSn3lqDvaaKJ377H46cPoVEq43yj+ohyYXT6cJsNtFU2ILNYmLplhYeWFNDpqWVqfcXk52WxIDib2izN3D/GUiGCS8hKZL+MnNKKLqNKclnHoMt4btb119ZvY39lfVex506c6rPPp5Y+SXzjxvD8jVbOSonnVvmHkdmmnua+pYFMzuPW/SXZ3jn/a8Z8oMcBg5PoGx/K/ver2DG+ClU1DTw+ofr+PWJFu5cd4gnfnkxT2Ql8efHVpJ9TAYtdjtWlwVrteblP/6IqROGs+DW+/j3vGSuX97E96cfRWL5ZixOOyOyLOyrsTN3VBJLlq/mirNPkClsEXUkvwKXcPpRhu2TTjqO6388x6t90xO+r3jOnTHJ486yNoeTa+58mvd3fcOo41LJGWqloriNlm8aGZqayusfrmPxOcn8eV0x/3vMuZyaYuX3r7zLsDm51FtbSWtLoGh/Bf+47SKv/Hrx7zezZPlqnEXrJcOEoZAUSVnpyYc/SHh4aWsRJ191RkA/U3Kwkl+9spobZh3BqUeP9nlcaUUNrgonqxeX4NQas1KkKTOlA2p46q01zBzSyog0JzPzW3nqrTX876WzmVIwiJ899BK1lbUMHZTdeavsPc+u8Fj4+NSHG2hqbubRNa2kJyrq7BosbUwo3wHgc5GkEJFK8it4bDYrqQZFhdnc8wx6V1aLmeq6Bqh2se6pUo8M+8pVxLmjHIzNdHH6MAevf7yRWy6dTVqyzfBW/+75tWT5alZt3MG3e+slw4Qh2VkvQiQl28jKzQzoa/SRo5n/q0t4pbyeJz7Y7LPvx397FWMGZbDiwiQqf5bOiguTGDM4g7tvWsDrH67jrJFORmRZOGukk9c/WkdlbSNTJwxnWKKZL64dRp5FMW3iCCpqGlj+8XquONYdelccm0JGoplBmSms+VkBX9wymjU/K2BoThp337TA69jlH6+X6/pCiIAZZdjI3DSSLfjMrzyLYv2ioT3m1/KP13P3TQsYmpMmGSYMmX//+98Hv9eidSHoNHpV1DRw+e8f5/SpE0lOTDA85o2vChk9bbzha5s+/Yon736aVx97gy8/3URqWiqDhw8CwGQ2MXzSCFZ+sIkp2amGU8EPv7yKwa17Oa1AUdnkJCfFREWji2fX7GNadh3HDoYb32pi7jgrDS0utlcpNu8sokAdYFRiHS5l4esyF5t3FjHOWsppY91n2skJJvYeqqWhuY1zJ6dy+bMHOHdKOs0tbTy2ajdnDG31OLayvpXNpQ6+d+Rov34nIooMm/6HcA8haCS/PPTlb/WNrwqpa23xyi9HaTVzjxrpdz9GGVZc3UpdUwvnjLP0Or8q61s7s+qovAS/M2zs8EGSX7EkdRBkFRhmmNI6BJvLrrlfdqzt4p5nV7B85cfMO2Omz6naSxe/yzn/671JW9eHTHbf0K3rrbkHC0t5/e5lrLrzKq8+5t50H1/vLCTRDHaHi0SLCbsTMFnB1YZFabISodoODq0YVzAM7WjmrpNbSTW10uBK4Lb/JpCQmEpFdbVH32XV9bQ5IclmIdPSSo0jgey0JCrq7OSkJ3qNJX9gDm/846d+/U5EFDnhRuONcqKR5JeHvvytnvnnF9hRsc8rv47MHsbrv7nY736MMqy+xUWbC9Jtqtf5BXRmVVV9s98ZNuvYcZJfsWTwkTBqpmGGyQNuQ6xjitdo4V9FTUPnLtULjhrJ0j8vZe7N55OY/N0f5uEeMrlz824e+eW/uWzu93hk0VzDMZwxbSLfy2lg1Y4a/n12Ete/1cz3x2eysS6TY9JqDNptTM9sIkm1MiTNxP66VmYXWEkYMZFbLp3tMe4BGSlU1DR4LYbsaXFjT78TIUTk8De/fP39bt26k7HXjvDKr02P7PK7DzDOsGSblQk5JjYeaOlTfnWMw98M6zxW8isuyJqkEPPc4dVzf6Out5aeN308918yk3f+8RJNDc2dx5SXVJBR4PnMsvThKez/tohX//Icnz/8GqMS7Ay0asaPGGQ4hlUbd/DkhjqOGgRO7eKoQfDEF3V8ub3IZ/u/11Qz//kmTnmykfnPN/HvNdWs2rjDa9yH+4yB/k6EEJHD3/zypb6+0Su/MgpSqatv8rsPMM6wtfuaePrLhj7n1+E+ZyC/ExF7pEgKIV8LBStrGz3O0DraBmal8dCVp7Hiny9TVlwOfLeDNkBLbSvFnxxk431bGZmTwYOXzKS5qoxHf5jb44LCx397FQUD0/n1nGFMGpnPr+cMo2BgOivuv8Ww/fk7r8Nq0jzzg2TWXpPKMz9IxmrS/OPmBV7j3rG/LKDFjT39ToQQkSPQ/DKSm5HK1ke3s2vZns6vrY9uZ9igLL/7AOMMGz9sABOG5fQpv7p+Fn8ySfIr/sjC7RB6+OVVhgsFN5c6OhcRnjMpxWNBc3JiAqdPGsabL31KHVAwcSQfP7WGQ5vLaD3YRGqSCUqc/OWyeXywdqthH/6Oo2Nh4qSBVn74RCHnHZFBS6uDP7/yJWcXtHHWWAuZiSasZqhu1rywroSauiaP9zzcAu1AfidGx4soIQu3Y05v8qu7sfk5fLRxB6Nm5TBmRi62RDP1XzXytyvO8Tu/fI3lza+qmZanOXZoUq/zq+tn8SeTJL9ilCzcDo9zf/4AJWUVXu0DsrJoszewbEFal+cZ1XtdB//zS6tZv+8Q1pYWyqvKOVBZx8jB2dx83qzOTdEO10dP4+hYmHiwsp7cRCfldjN5A9LYW1pDgkmTk6wwKXBpqGjSWKw2xuZneLzniQ8UkZSchMXsOSnZsUDb39+Jr+NFlJCF2zGnr/nV4Z3Pt3Hv66vYW1rVq/zyNZYDFfVYzeB00ev8WrCs3ueCbqNMkvyKUT0s3JYiKQzueXYFHNjALadkfNf2SS0MOc7vOyWC0QfA9n2HOPvGv/LKgmTOX9bEOw/expufbDLs+78V6ZycU9fn9xQxSIqkuCH5JWKOFEmRJRhnI4frw9+7Rn5w64NMNu/jqqOtPLmpja3OETidmpKyClrbnBRV1DEsJ50Eq/mwt/WLOCZFUtyQ/BIxR4qk+OPP3iYdZ2GvLUjE2v6A7fnL7Lzz4G2MHTaQH9z6IPv37GL4qDG8+rf/6edPIKKKFEkiiCS/RL/qoUiSu9tiUMdDa287wdy5TX9H+wW3Pdz5/W0PvsTCyRasZhiR6V7guHCyhVvvf5Ht+w6x5dvd3HlqIlu+3c3OorJwfiQhRJzwlV8dr3VkmOSX6A9SJMWg7g+t7bqfUdf9Qb7cXsRjG1s569lGpv+ngbOebeSxja18ub2I2x58iR+MNzMyU/GD8WZuvf/FcH4kIUSc8JVfHa91ZJjkl+gPfhdJSimzUupLpdTyUA5I9E3HWVj3hz527GfUdX+QL5b8hokjcll782g23zqOtTePZuKIXJ6/81q2fLub8ydYGJFp4vwJFjkbE1FN8is6+Movo72ZVtx/i+SXCLlAZpJuAr4J1UBiWffLXIdr70sfHWdhBVlmEi0mCrLMzMxv5ZcPvMjcUWBurWPuKMWS5as7d47NSXU/nSYn1cK8MSau/+vT7rOwLBOJFsXILJOcjYloJ/nVS5GQXx151TXDfvnAi5JfIuT8enabUmoocDZwJ3BLSEcUg7pOEXddhOirvS99rFz3DV/vrGf5NhMmE7hcUNrgJNXWxJ8uy8LZ1spZoy3cuHJ9+/4gLSzd4nmGtb+0hmfKNO/uavPYZ8SasD+4vxgh+oHkV9+EO7/Km1yMq/ga7Wjm/jPozLD/fF7I3uIklm5p8XgvyS8RTP4+4PZe4FYgLYRjiUm+HhAZyENeO6agf32CmTs/WtdjH2dMm8gZQ5q4+Khkrl66nyWXDue6l8uYnKuwOO2MyLKwr8bO3FFJmIdNNAy3nvYwESIKSX71UiTk17ObmvhvhY0Tsps9MuyaGVmYhx3vlWGSXyKYDnu5TSk1DyjTWm84zHGLlFJfKKW+WPy6PPCvg6+HIQb6QEVfC7G797Fq4w6Wbmnh+Pv2U1rv5Nh79/P5fjtPfNHIOUsbOenxBs5Z2sij6+o6H/jYXWcfD5Z1fi3d0uLzeCEileRX30RCfi3d0sKX24t4dF29Xxkm+SWCyZ+ZpBOBc5VSZwGJQLpS6hmt9WVdD9JaLwYWA7LPSLuOM6VlC9wnsFccm8KCZeuZd/LRhu1GZ2MdZ2F/PaljIaODX360zmcfL/79ZipqGjj7xr/y1PmpnL+siWf/8jNuv+9Zr+34n/jd1Ybjlo3VRAyR/OqlSMmv5/58A1lpyYaPMTHKMMkvEUyHnUnSWt+utR6qtS4AFgIfdg8YYczXwmhfCw6XLF8d0EJsX33c9uBLXDLFwpGDrVwyxcJ1dz3l81ghYpnkV+/1Jr/AczF2MPLr1vtf9DkWyTARav6uSRK9sGrjDkrKvBdGV9QVUXQw0as9/5B7OtifhYwmSwtFGUlefWTu+5rComIe+lEqANdPS2TJpiqe3JjmtcAx/9AOeWaREMJQb/LrlktneyzGDkZ+nfz4buoaW6it8x6LZJgINXksSQSpqGlg/i3/JEU30qRSeO2ft7jPlAJ4EOQPbn2QIyz7+OOp3017/+7DRrY4RsjW/CJ05LEkAu8Mm33iMaRUbpH8EpGth8eSyExSBHnqrTXkWu3UNraRk2LvXMhodDbn6wzqy+1FrGtt47EvazzarQlFIR27EEJ0z7CXP9yAxaQlv0TUkiIpQlTUNPDKB2sxt7Sw+JwUFr3ZxKsfrOW1f97S41Owuyt8/a4QjlIIIYwZZViaLTGgDJP8EpFGnt0WITrOwM4bb2V8jpnzxlvJsdr7ZWFiIDvnCiGEkXBlmOSXCCUpkiLEe2u/YXNJM9OHKraVtzF9qGJzSTMr1ob+SQrdH3wrhBCBCleGSX6JUJIiqRdCceZy5vSJ/PTkXE6cNJRJI/M5cdJQfnpyLrOnTwzpWLo/NFLOxoSIfZGSYZJfItJJkdQLoThz6e0usX0dSyA75wohYkOkZJjkl4h0snA7QIE8sygQvdkltq9j8bWjbrA+k4h9B8praGxuZdwJ4R6J8FekZJjkl4gGMpMUoEg6c+nrWGQXW9GTmvom9pdWdX6t2LCbPyxdzR3P/Jcr71/FdY9/wW/eq+T+b9LDPVQRgEjJMMkvEQ1kJikAkXTmEoyxBLoHk4g+tQ3NtLQ5Or93uTSvfbaTervD47g9ZQ2YkjyLnXqnldRBBZ3fJ6aPZdS5PwFgiC0RpWJn/8h4ESkZJvklooUUSQHo6cylN3+UFTUNXHvXMyy+/fLOYDBqC9VY5EGQkc/lctHQ7Pk4mR3FVXy+vdSjraG5hd3VTmw2W2eb1lDjTCB1wGCPYwdPuoCsgUM82o6wJWHt8rMiNgUzw3xllT8ZJvklooUUSQEI9plL10WLHT9v1NYfYxGh5XK5cDhdnd+v33GQb4sqPI7ZVlxHmznRo626vpmE3BEeszYJqdkUTD3Xo82sFFOzc2V2R/QomLnhK6v8ybB4yK+y6nreXLsbkKfcRLrxxyZx0qiZhq9JkRSAYJ65GC1a1Fr7vZBRzqIi3+ffFLO7pIrPdlVSbVckZOV1vpY6aDh5k87yOH74jCySU9P6e5gijgQrN3wtuvZ3MXY85NfLa3ayZ/CZZOUOPvzBIqzy8vN8viZFUph4Llr8blfa7m2xclYVD97fsJsvdpdRXOugvDWBnJFTGDjuVCZMH4otMSncwxMiaIzy65ZLZ/tsj0sacvKGkj0wP9wjEYeRme375hMpksLAaNHiBc+tw6U1r16S0dkmt7NGruKyajbsKOH9beU02J04krLJHnscg2bM56j84eEenhAh42vR9byTj46IReFCBJMUSWFgtGhx5pBWthxykpM6oLOtL4vCRfC4XC4++7qQ/RUNrN1TTWkjJA0YwqAppzHp8iOwWBPCPUQh+o2vRde/fODFoN7YEome/WgbGwur/Dp2V1EZ3z8hOcQjEqEmRVIYGC1aLKtupM0Jxz8YuwsZo0WTvZUtu0tYvqGI/VXNqJRsUkdPJTV7EJNOPpbJsjhaxDFfi64r6oooOpgY04ux1+6t5Ygr/uLXsRNCPBbRPw5bJCmlEoFPAFv78S9pre8I9cBiWTwsWowmu4vLWbujlHW7yqlsS0BZk8ieMINhcy5ieHZOuIcn+kDyK/jiOb/k7tH4489MUgtwqta6QSllBT5VSr2jtf48xGMTXfi7f5LoWUNTC4Wllbywehfltc04E7NxpeczcPQsJv9oRriHJ4JP8isCSH6JaHXYIklrrYGG9m+t7V+y8UM/83f/JOHpQHkNxRV1vPtlEXsrW3AmpJFRcARjzr6doanpmEzyZJ5YJvkVGSS/RLTya02SUsoMbADGAA9qrdeGdFTCQ6geSBlrXC4X5TUNvLF2N1v2V9GsknGk5ZOcNZAJ8y5ncGKyFEVxSPIrvCS/RDTzq0jSWjuBo5VSmcCrSqkpWuuvux6jlFoELAJ45NaLWHTeiUEfbLySvUeMNbe08tWeMlZ/c4BtB+20aoVt0BjyJ5/HuJNGY0uSO0uE5Fe4RWN+ffZNMRt2HvJqLz5UxZQwjEeET0B3t2mta5RSq4A5wNfdXlsMLAZgzf0ynR0kkfJAynBzuVw02dt4ZfW3FFc2UNygqGmzkjViIgUnzGdqdq7MEokeSX71v2jNr6f/u4eR597i1T5zppx4xRt/7m7LBdraAyYJOB34a8hHJoDgP1Q3GhSWVrFm2wFcLs1nuyqx2JKorGvGnJXPsGPnkT45l2MG+t5GXogOkl/hFa35ZbVaycwZFO5hiAjgz0xSHrCk/bq+CVimtV4e2mGJDrH6IMjC0irWfnOA/+6owJqQSH2TnSZLJharBXNiGgVTzwelmPS9YSTYEg/foRDGJL/CKFbzS8QPf+5u+wo4ph/GIgzE0p4kdY3NLP98Bx9uK6c1bSjDp81j8oxxsmO1CBnJr/CKpfwS8Ul23BYh5XS6+GTTLpZ8sgdn6mCGTJ3DtOuOlU3ZhBBCRDwpkkRIfLJ5D0s/3U2dTiF7yikc/5PrsCUmhXtYQgghhN+kSBJBobVm085invvvLoobFOmjjuGYa27AZDaHe2hCCCFEr0iRJPpkf2kVL3y6nQ17a8mYdBKTLriDsalp4R6WEEII0WdSJImAVdc18ebanby/rRJz7ijGnngNp543QtYZCSHC7sp/vkNy5sA+9dGWIA+2Fm5SJAm/NLe0svSjbXy2q5LWpFyGHXcaJ90wTQojIUREURlDOPby28M9DBEjpEgSPrW0tvH+l4Ws2FxMpSORUTN/yHGzJmGxWMM9NCFEnHM4nDS1tHq0aQ0upzNMIxKxSIok4cHlcrF5dymvfLab3fUW8o88mTELf8KU5Mh9hIAQwdTa5gj3EIQf/vfxj2nMGO3RprVmzCnzwzQiEYukSBIAlFbW8dwn37C2sJGs0UczZs4v+H62XJcX8efa53aHewjCDylDpzL9zIvDPQwR46RIimP2ljYeXL6RzcUNqKxhjDnpKk47Z1S4hyVEWJ1wifeDTYUQ8UmKpDjjvjNtBx9/W0GzNZOx37+Ek8+bEO5hCSGEEBFHiqQYV1xWzd6SKrYfrGVLcR2lLYmMOuUCps86Su5ME0IIIXoQ8iLJ6XTx5Y5iNNqjfXNhFdtLGzzatNYcrHdixUFuuveT311OJ3OPziMjxfu1tOREJowYFNzBRwl7Sxtb9pTQ0NzK8o0HMJnNlNa1YksbgCshlayxx5M0IoMpZ0xhSrgHK4QQQkSJkBRJi574svPfLa1tpI0+Hmu353alDMtl3BlHef3s+B76dTjaeOuL/4Ld5fVaw7Yi+GCj4exIa10FA9NtXu0ul+bMo/IZnOV955bNamHc8L5tSBZsO4vKaG5pY/kX+6hpdlBV14xKy6WlzUnm+BmYLVbGXnI91gQb48I9WCGEECLKhaRImnr5b0LRLRaLlUkzTg1afy6Xi7c/fx9XXavXa43V5agVX2A2m7xea6mrIi8zwatda5g5OY/RgzO8XjMpxaghOYe9xFVZ20hVXSO1DXZeXVdIS5uD8pYEEmyJ6MxhpGTnk3/SWYwdPDSATyqEEEKIQMX1miSTycSkE2YH/HNaa7TLezZLa82K9R/Stq3O67WWxnqc5WtJSPD+ldsbakFDYloGTdpG+pAxYMpk/AVXYbUmMF4eEiuEEEL0u8MWSUqpYcBTwGDABSzWWt8X6oFFMqUUykfhMvF7gRddHTvEmqQYEiKoJL+EEH3hz0ySA/i51nqjUioN2KCUWqm13hbiscUNKY6ECBnJLyFEr3kvuOlGa31Qa72x/d/1wDfAkFAPTAgh+krySwjRFwGtSVJKFQDHAGtDMRgR+/7y04tpaKj3ak9NTeP2B56L2L5F9JP8En0l+RV//C6SlFKpwMvAzVprr5XJSqlFwCKAy37+J045V56pI7w1NNQz6pr7vdr3/OfGiO5bRDfJLxEMkl/xx68iSSllxR0wz2qtXzE6Rmu9GFgM8Ogne7TRMUII0d8kv4QQvXXYNUnKvbHPY8A3Wut7Qj8kIYQIDskvIURfHLZIAk4ELgdOVUptav86K8TjEkKIYJD8EkL02mEvt2mtPwXkSagiIL4WIVaVHcRWuNOrvbayos/vWVtZwQGDvqvKDvLrq+Z5tcuCyNgn+SV6yyjDqspKsezahtli9WiX/Ipdcb3jtggdX4sQK//vB1Qu977qoV2OPr+ndjmM+3Y6ZUGkECIgRhlW9+BPKXvxDySkZXu0S37FLimSRL8yWRM48qf/9moPxh98Zu5gwzDZcNdFfe5bCCFyz76JyuX3eGWY5FfskiJJePF1qay+qpy07FyPttrKCrTLQWbuYI/2mvJSw75dbS1svPcar3ZHXXmfp5Rrykv56oHrDd7T+wHGQojYFEh+9dRulGFly+/FWV/plWGSX7FLiiThxdelsg13XeTVfqBwJ5XL7/Fq93n2Y7KQ/6MHvJqL7r+sz1PKWpnIv+per/a9/7rU7z6EENEtkPw6XHt32tHCwIv+RELOcI92ya/YJUWS8Juz1XgWyNlY7Xcf2tlG8YNXGL1iuGjRaEHk9WcejTZ43p12OGgu22/Qtf/b3gRr11vZPVeIyOIzv1pb/O7DUVdB2Qu/MXjF//wCHxmmoejJW8g56+Zu7YFt2xWM7JH8+o4UScJvyuw9C+Rqa6Fk8U+8jjUpk+FZlDJbGXL9k17txQ9ega3b2RmAS7u82rTZzLCfPuPVXnT/ZVgyBxmN3HAsqalpXm3B2vVWds8VIrIY5Re4c8OIUYYps6XP+QXGGdZasZ+KN/5mkGH+5xcEJ3skv74jRZIIiYwBOdz55HKv9uvmHocy+bM9V+9YE2xebSaz2XAsQgjhi1GGhTq/wDvDJL/CS4qkOOZrSrWipIgag2lp7fS+zbXsxTvQLpfXgsOWauO9PbTTgavNeHq7tcXu8b2jtgyX08kN86Z166T/nxpRU14qe5UIEUGCkV8d7UYLpn1lWOnS2xj4wz94tXfPLwCX0+GdX9DvGbb1Pz/HXlHm9Xkkvw5PiqQ45nMvozsvIOfcW73aDz33K1orPNf8uOwNDFrwR8xWz83VDi79lY++L0SZrV7t2ung0NJferQ5G6qwZAxi2FWee4fsvc/XQkZNyZM3e7UqH1PegdDKJNPPQkSQYOQXuC+hDZh3i1e7UYZZdm6j8p1/eWWYUX65252MuGmpV7thhimFs7HGK8OCkV9OexODF/6JIQVjPdolvw5PiqQwiN5Fcdrrrg6X3f05nA7PszTdw5mSr+lqZ0OVZx8uFxDIGZcy3IPpy79eLLNAQgRJLOVXR3v3/IIeMkwZZ1j3/AqUJX0QymTyyjDJr/CSIikMIn9RnPIRJoqiB7otctRgyc7HZE30s29teHebMpvJX/SoR5uj9hAVb/zNuwenw3scAM42w9+hdjn8/n2npqYZtptUYOsQfPXja7GlENEipvKr4/iBI/3qWaNx1FV4ZZhRfgEcePjHxv0YZZh23/3b/fcYSH6Bcfa0NVRhNrgj2BfJr+9IkSQC8vDbGzy+v+6s4wIokAClKLjxaa/mvfddisnqvejaiDnBxkPL1/n9lkZnYb74OjMLpI+e+hFChE/3/AJ3hvlLKROW9ByGXX2fR3sg+QWBZVgwsufXV81j8LBRfeojXkmRJPpGR++OsLWVFTKNLUS8i9IMk/zqH1IkxTFfU6ra6aDk8Z96/4DBQxy1y8Ghpd6LJI2mjQGU08m+B4w2k8Tgrjf3Qsbux1tMwXmou0u7+nwZLh6nn4WIBMHILwgsw6rKDqJ9ZJjxXbva8NhgZJjkV/+QIimO+Trb+Ok5Mxg43/tOjbIXfufVpswW8q703kq/6IHLAtrb44Z500iweV62Sxg4HJPZHNCltVCRMzMhIksw8guCk2FG+QVgMlskv6KcFElhEOlVvXY5qFx+j2G7F6fT+KzN6QzoPS0mFbIzLl+/72DcWitEvImp/IKgZJjkV+w6bJGklHocmAeUaa2nhH5IsS/Sq/rM3MF+T+MOyBsalDtd/vXG2oCOD0SwFmOL6CQZFlyxlF8QnAyT/Ipd/swkPQk8ADwV2qEI4Sl692MREeZJJMNEGEiGRb/DFkla60+UUgWhH4qIRqGceg/1fiyRftlABIdkmOhJtGaY5Ff/kDVJok+i+WwoOAdVvAAAIABJREFUmscuhAiOaM2BaB13tAlakaSUWgQsArjs53/ilHMvDlbXop/JGYqIN5JfsUPySwRT0IokrfViYDHAo5/s6f/HtIugkTMUEW8kv2KH5JcIpsAeSCWEEEIIESf82QLgOWAWkKOUKgbu0Fo/FuqBCSHT5iIYJMNEuEiGRT+ldfBnlmW6Woj48pNTRgXnWTERQPJLiPgyOT+dE8bkGGaYXG4TQgghhDAgRZIQQgghhAEpkoQQQgghDEiRJIQQQghhQIokIYQQQggDUiQJIYQQQhiQIkkIIYQQwoAUSUIIIYQQBqRIEkIIIYQwIEWSEEIIIYQBKZKEEEIIIQxIkSSEEEIIYUCKJCGEEEIIA1IkCSGEEEIYkCJJCCGEEMKAFElCCCGEEAb8KpKUUnOUUtuVUruUUreFelBCCBEskl9CiN46bJGklDIDDwJzgUnAxUqpSaEemBBC9JXklxCiL/yZSZoG7NJa79FatwLPA+eFdlhCCBEUkl9CiF6z+HHMEKCoy/fFwPSefmBCXlpfxiSEEMEi+SWE6NGgjESfr/lTJCmDNu11kFKLgEXt3z6jtb7cr9FFKaXUIq314nCPI9Tkc8aOePiMBiS/fIiH/x7i4TOCfM5Q8udyWzEwrMv3Q4GS7gdprRdrrY/XWh8PTAzS+CLZosMfEhPkc8aOePiM3Ul++RYP/z3Ew2cE+Zwh40+RtB4Yq5QaqZRKABYCb4R2WEIIERSSX0KIXjvs5TattUMp9VPgPcAMPK613hrykQkhRB9Jfgkh+sKfNUlord8G3g6g35i/Nkp8fEaQzxlL4uEzepH88ikePmc8fEaQzxkySmuvNYxCCCGEEHFPHksihBBCCGEgqEWSUupxpVSZUurrYPYbSZRSw5RSHymlvlFKbVVK3RTuMQWbUipRKbVOKbW5/TP+IdxjCiWllFkp9aVSanm4xxIqSqlCpdQWpdQmpdQX4R5PJJL8ih3xlGGSXyF+72BeblNKnQI0AE9pracEreMIopTKA/K01huVUmnABmC+1npbmIcWNEopBaRorRuUUlbgU+AmrfXnYR5aSCilbgGOB9K11vPCPZ5QUEoVAsdrrSvCPZZIJfkVO+IpwyS/QiuoM0la60+AqmD2GWm01ge11hvb/10PfIN7V9+Yod0a2r+1tn/F5OI1pdRQ4GzgP+Eeiwgvya/YES8ZJvkVerImqQ+UUgXAMcDa8I4k+NqncDcBZcBKrXXMfcZ29wK3Aq5wDyTENLBCKbWhfXdpEediOb8gbjJM8ivEpEjqJaVUKvAycLPWui7c4wk2rbVTa3007h2KpymlYu7yg1JqHlCmtd4Q7rH0gxO11scCc4H/ab+0JOJUrOcXxH6GSX71DymSeqH9GvfLwLNa61fCPZ5Q0lrXAKuAOWEeSiicCJzbfr37eeBUpdQz4R1SaGitS9r/twx4FZgW3hGJcImn/IKYzjDJr34gRVKA2hcEPgZ8o7W+J9zjCQWlVK5SKrP930nA6cC34R1V8Gmtb9daD9VaF+B+XMWHWuvLwjysoFNKpbQv0kUplQLMBmL2Di7hWzzkF8RHhkl+9Y9gbwHwHPAZMF4pVayU+nEw+48QJwKX467aN7V/nRXuQQVZHvCRUuor3M++Wqm1jtnbS+PAIOBTpdRmYB3wltb63TCPKeJIfsUUybDYEdb8kh23hRBCCCEMyOU2IYQQQggDUiQJIYQQQhiQIkkIIYQQwoAUSUIIIYQQBqRIEkIIIYQwIEWSEEIIIYQBKZKEEEIIIQxIkRTHlFK/UkrJ06OFEBFHKfWkUupPPl57WCn12/4eU/t7r1JKXROivocrpRqUUub27wcppT5RStUrpf4hmd3/pEiKYkqpQqXUofat2jvarlFKrfLn57XWf9ZaB/2PvT1E7O1/7LXtf+RHBPt9hBD9Tyl1klJqTfvfdpVSarVSamr7a1cppT4N9Ri01tdprf8vFH0rpRKUUr9XSu1USjW25+zjSqmCULxfV1rr/VrrVK21s71pEVABpGutfx6qzBa+SZEU/SzATeEehIGfaq1TgQG4Hy75dHiHI4ToK6VUOrAcuB/IBobw/9m77zipqvv/468zZWe2zBa277JsoXcslGDDAoiCGDXYojEm1qjxa4ya8ktMMdFEE42aREyiWFCxAAqIIIoFpFjoSl9Y2M7W2TK7M3N+f8zsumUWdrYwM7uf5+PBA/bOnTufGZg355577jnwO8ARyLp62BvAJcA1QAwwHvgCOD8AtWQCu3Q3l8ZQHvL/fRfIhxb6/grc27SYY1tKqSeUUnlKqSql1BdKqbNaPPZg06rRSqmVSqk72jx3q1LqMu+fRyilVnvPHHcrpeZ1pjittRPPCtWjWhx3klLqM6VUhVKqQCn1lFIqzPvY00qpx9rU8Y5S6m7vn9OUUm8qpUqUUgeVUne1Oe7n3vdapJTqswt4ChEgwwC01q9orV1a6zqt9Sqt9Tal1Ejg38B3vL3IFQBKqYuVUl95v5d5SqkHWx6wRc9UhffxG9q+qFLKppT6UCn1D+9/+M2X4pRS07xr7f1MKVXszZQftnhuvDdDqpRSm5VSf+yot0spdQEwHZirtd6stXZqrSu11k9rrf/rY//BSqkPlFLHlFKlSqmXW2axUup+pdRR7+Wy3Uqp873bfWaVUipLKaWVUial1PPAD4D7vJ/nBS0z27v/lBaf3Val1LQWj61VSj2klFoH1AI5x/uLFb5JIyn0fY6np+beDh7fDEzAc9a3EHhdKWX1sd9C4OqmH5RSo/CcxSxXnst5q737JHn3+6dSavSJivM2fq4FNrTY7AL+D0gAvoPnDO1272MLgKubznqUUgnex1/xbnsH2IrnDPZ84G6l1Ezvc58AntBaRwODgUUnqk8I4Zc9gEsptUApNUspFdf0gNb6a+BW4DPvJaOmxkINcD0QC1wM3KaUuhQ8Y3CAd/H0TCXiyaotLV9QKRUPrAHWaa3v6qBXJQVPr0868CPg6Ra1Pe2tIQVPo+MHx3l/FwCbtNZ5nfo0QAF/BtKAkUAG8KC37uHAHcBErbUNmAnkep93wqzSWt8AvAz8xft5vt/qhZVKB5YDf8ST7/cCbyqlElvsdh2eS3Y24FAn35NoQRpJfcNvgDvbfDkA0Fq/pLU+5j0jegywAMN9HGMxMEEplen9+VrgLa21A5gN5Gqtn/Me50vgTeCK49T0D++ZpB1PUPyuRU1faK03eI+VCzwDnON9bBNQybdd21cBa7XWRcBEIFFr/XutdYPW+gDwrHcfgEZgiFIqQWtt11q3bJgJIbpJa10FnAloPN+9EqXU20qp5OM8Z63WervW2q213ga8gvf7jidn3vf2TDV6s6plIykN+Ah4XWv96+OU1gj83nuMFXhyZ7jyDIC+HPit1rpWa70Lz4lYR+KBguN9Bm3e2z6t9WqttUNrXQL8rcV7c+HJ21FKKbPWOldrvb9Fvd3Nqu8DK7TWK7yf7Wo8J80Xtdjnea31Tm/WNnbhNfo9aST1AVrrHXjGCTzQ9jFvF/TXyjPIsgLP2VaCj2NU4zkraWpwXIXnLAY8PUqTvV26Fd7jXIvnzKwjd3nPJK14GllvKKXGeWsappRappQqVEpVAX9qU9MCPAGA9/em8UyZQFqbOn4JNAX0j/BcDvjG260++zj1CSG6QGv9tdb6Bq31QGAMnobM4x3tr5Sa7L1UVqKUqsTT29T0fc8A9nf0XDw9T+F4LuMdzzHvpf0mtUAUnt4pE9CyZ+h4vUTHgNQTvFYzpVSSUupV7yW1KuAlvO9Na70PuBtPz1Kxd78071N7Iqsyge+1ycMz29Tf2R4x0QFpJPUdvwVuwtPdDIDyjD+6H5gHxHkbLZV4uoh9eQXPpa7v4AmmD73b84CPtNaxLX5Faa1vO1FR3jOcT4B9wAzv5n8B3wBDvd3Nv2xT00vAXKXUeDxd2Eta1HGwTR02rfVF3tfaq7W+Gs8lwUfwNMwiEUL0Cq31N8DzeBpL4Olhamsh8DaQobWOwdPgafq+5+G53NSRZ4GVwIoufpdLACcwsMW2jOPs/z4wSSk18Dj7tPRnPO95nDfLvk+LLNNaL9Ran4mnQaPx5FJPZVUe8GKbPIzUWj/cYp9uDfgW0kjqM7xnLa8Bd7XYbMMTECWASSn1GyD6OIdZgefL/HvgNa2127t9GTBMKXWdUsrs/TVReQZqnpC30TUK2NmirirArpQaAbRqbGmtj+AZS/Ui8KbWus770CagyjsYMlwpZVRKjVHf3n78faVUorfuCu9zXAgheoTy3MDxs6ZGhFIqA88YxabLRUXAQO9YxCY2oExrXa+UmoTnrrEmLwMXKKXmeQcrxyulJrR52TuA3cAypVS4P/V6b6V/C3hQKRXhzZvrj7P/+3jGXy5WSp3mrcmmlLpVKXWjj6fY8Fzaq/COEfp50wNKqeFKqfOUUhagHqjDm0c9lFUvAXOUUjO9WWhVnkHsnW3giU6QRlLf8nug5dnIe3gGRe7BM2ivnuN0v3rHH72FZ/Diwhbbq/H0Al0F5AOFeM5+LMep5SnvHRl2PI2dX2ut3/U+di+eoKzGc6b4mo/nLwDG0mLqAG/gzcEzuPMgnvlD/oPnEiLAhcBO72s+AVylta4/To1CCP9UA5OBjUqpGjyNox3Az7yPf4DnZKhQKVXq3XY78HulVDWe8ZPNg5S11ofxjKH5GVCGZ9D2+JYv6B2ofTOe7FrawY0nx3MHnowoxJMnr3D8KQuuwHPC+BqenvcdwOl4epna+h1wqne/5Xjys4kFeBhPThXi6TX6pfexbmeVd3D5XO8xS/B8Pj9H/l/vUcr3jQJCBJZS6mw8Z0pZLXq0hBCiW5RSjwApWuvj3eUmBCAtThGElFJmPBNk/kcaSEKI7vBeIhynPCbhGTS9ONB1idAgjSQRVLzjnCrw3KHR4R0zQgjRSTY8l8Fq8FzqewxYGtCKRMiQy21CCCGEED5IT5IQQgghhA/SSBJCCCGE8MHUGwd9e88bcg1PiH7kkmFXdDRBaciR/BKif8mOHcLYpAk+M6xXGkm1jTW9cVghhOh1kl9C9C8Nro6nzZLLbUIIIYQQPkgjSQghhBDCB2kkCSGEEEL40CtjkoQQ/lNaEUk0FoMFRfCNg9ZoHG4HNVShlYxtFkJ8K9jzC7qWYdJIEiJIRBJNdEQ0GDRBmTEaLG4L1IKdykBXI4QIIkGfX9ClDJPLbUIECYvBEtwBowCD9tQphBAtBH1+QZcyTBpJQgQJhQrugAE8JQZ7kUKIky0k8gv8zjBpJAkhmm1cu4nvn3cD15xzPS//85VAlyOEEH7p6QyTRpIQAgCXy8Xjv3mSvzz/Jxas/i9r3v6Q3L2HAl2WEEJ0Sm9kmDSShBAAfL1lN+mZaaQNSsMcZua8OdP4dNW6QJclhBCd0hsZJne3CRGCbr3iZ1RU1LbbHhsbwb/feKxLxywtKiUpLan558TURL7e8k2XaxRCCF96I7+gdzJMGklChKCKilqG3fp4u+17/n13l4+ptY95Q0JhIKYQIqT0Rn5B72SYXG4TQgCQmJJIcX5x888lBSUkJMUHsCIhhOi83sgwaSQJIQAYMX44R3KPUpBXQGNDIx+8s5Yzpk8NdFlCCNEpvZFhcrlNCAGAyWTk7t/fyb3XP4Db5eaieReSPSwr0GUJIUSn9EaGSSNJCNFsyrmTmXLu5ECXIYQQXdLTGSaNJCFCUGxshM9BjrGxEQGoRgghOi+U8uuEjSSl1HDgtRabcoDfaK3bD00XQpwU3blNtj+R/BIi+IRSfp2wkaS13g1MAFBKGYGjwOJerksIIbpN8ksI0R3+3t12PrBfay1rFQghQo3klxDCL/6OSboKkFUvg8SWT7exctEqSvJLSUxL4MJ5M5hw5rhAlyVEsJL8CiKSXyIUdLonSSkVBlwCvN7B4zcrpT5XSn2+5vW1PVSe6MiWT7fx2nOLiJsezsTfjiRuejivPbeILZ9uC3RpQgQdya/gIvklQoU/l9tmAV9qrYt8Pai1nq+1Pl1rffr535vWI8WJjq1ctIqsS1OJGxyNwWggbnA0WZemsnLRqkCXJkLYwz//K3NPu4IbZvw40KX0NMmvICL5JXpDb+SXP42kq5Gu6qBRkl9KTFZUq20xWVGU5JcGqCLRF8y6YiZ/XfDnQJfRGyS/gojkl+gNvZFfnWokKaUigOnAWz366qLLEtMSqMy1t9pWmWsnMS0hQBWJvmD85HHYYmyBLqNHSX4FH8kv0Rt6I786NXBba10LyEqXQeTCeTN47blFcKnnDKwy107ukgKu/OE8n/v3l0GS/eV9Nqkoq+Tv9z/CPX+5n5i4mECXE5Qkv4KPv/kF/eO73R/eY0uhkF8y43aIavrirFy0ij35eSSmJXDlD+f5/EI1DZLMujSVrKyRVObaPQHV4jh9QX95ny2tfn0Fzrw9rFq0gu/dcnWgyxGiU/zJL+gf3+3+8B7bCoX8kkZSCJtw5rhOfXlaDpIEPL9f6tnel758/eV9Nqkoq2TzitX88/JUbl+2mhnzLgraszEh2upsfkH/+G73h/fYUqjkl7+TSYoQ1JVBkls+3cbDdz3Kz654gIfvejQkbs3tb4NBV7++gjlDFEOTrcwZoli1aEWgSxKiV/j73Zb8Cn6hkl/SSOoH/B0kGapzmPSnwaBNZ2HXnuY567z2tGg2r1hNZXllt477uzsf4vbL7uLwgTyumHIVy197tyfKFaJb/PluS34Fv1DKL7nc1g/4O0gyVLt9uzIYNFQ1nYXFR3m+wvFRpuazse5c2//tk7/qqRKF6DH+fLclv4JfKOWXNJL6AX8HSZbkl5KVNbLVtpisKPbk5/V6rd3h7/sMZVvXf8mH+fW8si2/1fYBpV8G7QBIIbrKn++25FfwC6X8kkZSP+HPIMmmbt+mMzEInW5ff95nKPvjgr8GugQhTqrOfrclv4JfKOWXNJJEO6Hc7dvf5hkRQrQm+SV6kjSSRDuh2u3bH+cZEUK0JvklepI0kvq5js5cQrHbN1QHbAohukbyS/Q2aST1Y33tzCVUB2wKIfwn+SVOBmkk9WN97cwllAdsBovi/GIeuucRykrKMRgUc66+mCtuvCzQZQnRjuSXaKs38ksmk+zH+toMrxfOm0HukgLK91fhdrkp319F7pICLpw3I9ClhQyjychPfn0rL675H/9a/CSLX1xK7t5DgS5LiHYkv0RbvZFf0pPUj/W1M5dQHbAZTOKT4olPigcgIiqCzMGDKCksJWtoZoArE6I1yS/RVm/klzSS+glfAxyPd6tssNyK6m8doThgs6s2rN3EmwvfpCCvkNSMFC6/5nKmTJvUY8cvyCtk7659jJowoseOKURXtc2CYaOHsnnJ5qDOL191H68Wya/gyy9pJPUDHQ1wvPKH87jyh/PanbkAQTEgsq8NzOxJG9Zu4tln5pM1N41B2WOoOFjNs8/MB+iRoKmtqeM3t/2OO39zO5G2yG4fT4ju8JUFm5dsZuKkiexZvTco86ujuiXDQiu/OtVIUkrFAv8BxgAauFFr/Vm3XlmcNMcb4PjAP+5t92V9+K5Hg2JAZF8bmNmT3lz4Jllz0xgwJAbA8/tcz/buhoyz0clvbn2QCy49n7MvPKsnyg0oya/Q11EW7Fm9lwf+cW+rfYMlv45Xd3/PsFDKr872JD0BrNRaX6GUCgMiuv3K4qTx99ZSf/fvqDu5u13ecktsxwryChmUPabVtthsG7vzujdIUWvNI/c/SuaQTK788RXdOlYQkfwKcf5kQVdyQzLs5Aql/DphI0kpFQ2cDdzgLaIBaOiRVxcnhb8DHP3Zv6Pu5AM7D7J50+ZudTP3tYGZPSk1I4WKg9XNZ2IAFQerSc1I6dZxt3++g1VvvU/OiGx+NOsWAG6670amnDu5W8cNFMmvvsGfLPA3NyTDTr5Qyq/O9CTlACXAc0qp8cAXwE+11jVdflVxUvm7ltGF82bw4r9eIn6aDUuiEUeJi2Nrq7nutu+323flolXYRoWze8lBakvqiUi0kjAqjtVL1jDh9uHd6mYO5TWYetvl11zuuYY/13MGVnGwmtyl+dx0y83dOu64iWP5KPf9HqoyKEh+9QH+ZIE/+QWSYYEQSvnVmUaSCTgVuFNrvVEp9QTwAPD/Wu6klLoZuBngx7+9gfO/N61HCxVd15VbS131bgo/PIbD3oglyozB4fufSt6eoxjKNYPmJhGVGY79UB2HlxZTU1Hrcw4Tf7qZ5ZbYjjVdt39z4ZvszjtEakYKN91yc4/eHdJHSH71Af5mQWfzCyTDAiGU8qszjaQjwBGt9Ubvz2/gCZlWtNbzgfkAr+5coHusQtEj/Lm1dOWiVYy8IbtVF3H5/iqfZ1Bu5SJjViLROZ5hHtE5EaTPisf+TG2PdDP3p1ti/TVl2qSgDJUgI/nVR3Q2C/zJL5AMC5RQya8TNpK01oVKqTyl1HCt9W7gfGBX75cmmpzsOT9K8ktxfGll85PbaaxzYQ43knFGClX59e32NRlNhNlMOOtdGC1GXA4XYTYTFouF3CUF0s0sAkryK/CCOb9AMkwcX2fvbrsTeNl7Z8gB4Ie9V5JoKRDzbLgcbo5sLiLnB6lED46gan8tB18pJFLZ2u2bnpOGsdaAy+zG0ViHyWzGWGsha0QmF86bId3MftBozw3qKtCVHIf21hlaJL8CJNjzCyTDekpI5Bf4nWGdWrtNa71Fa3261nqc1vpSrXV5lwsUfmk5z4bBaCBucDRZl6ayctGqXnvN2voasuYlEzM0EmVSxAyNJGteMrX17ce6XjhvBoffLsSeV4d2aex5dRx+u5AL583gwM6DHNp7mLLiMg7tPcyBnQd7rea+wOF2gFsRtG0QDbiVp84QIvkVOMGeXyAZ1lOCPr+gSxkmM24HuUDMs9HoaCR2qA3t0minG6UMxA61sc+R73N/X4Mk1634jG07tpJ9XSoxQ6Ko3GfnvVffA+CyW+b2Wu2hrIYqqAWLwYIKwtMxjcbhdnjqFKITQiG/QDKsJwR7fkHXMkwaSUEuEPNsWCOtVB+sJW7Et93T5d9UY420ttu3o0GSGx79guG3ZDQfI26EDa6C1S+ukYDpgFYaO5XYg/lMLDizTwSpYM8vkAzrKSGRX+B3hkkjKcj11CK0bz2zlNVL1lBfU4810sr0S8/nslvm+jzG9EvP95wxXUXzGdTBVwuYeenMdvvn7TlK1k0TWr1WTFYULqebmCFtbp8dEkV9TV5QLT4phOg9PbmItq8Myxmd3a38unDejA57uzrKsLrqwzx816OSX/2ENJKCXEfzbEDnF3F865mlvLf8vXbdxgWHCjlSlOdz4duZzGT1i2uor8nDGmll5qUzyRmd3e41Dx1ycmDVEYbMGtT8epW5dowmA5X77K3O5ir32TGHmWXBRyH6iZ7IL/CdYStfeQ/jYhMTfjK8y/n12nOLsFgsPnu7fGVY2ddVKLMibnq45Fc/IY2kEOBrng1/FnFcvWQN2deltus2/vyZL5hy73ifxxg2emi7OlYuWkXKjAE4zHXk51ZhMpsZfHk6u186TPyw2FZniqefcRrbXt3a7mwuKsomCz4K0Y90N7/Ad4ZlznNzYEF+t/IrZcYASlZU+bzV32eGvVZA1vQ0ya9+RBpJIcqfAZH1NfU+u41dTrfPGWU/3/Y1B3MPtOt5ctth5PQMLNFhhFnCcTlcGBo1RoyUr65rd5vsW88sbXc2t271Z92exVYIEdr8HdDtK8NsWVacDle7Y/iTX45GB5XHqvjRAzf4vNW/bYYZG0wMn5Pd6bpF6JNGUojyZ0CkNdLq89KX0WTweQynbmD4Ve0HLH79r0M0VDuJTA8HwGQ1Ul3tRBkVD/zj3nave9ktc9sNcNyzc68s+ChEP+fvgG5fGVadW4/JYmy1X1fyy+lydjgrdtsMe/iuRyW/+hlpJIUofxZO7Ggg4+lnnEbukrx2x9Bu7bvnqcHN4SXFNJzvxJpkpr64kcI1ZRh05/8ZXThvBs///QXcFmer221v+L/ru/2ZCCFCg78Lv/rKsEOLiggzWSjfXyX5JXpNrzSS7JV2ImwRGAydmqtSdIE/Cyc2nQm1vfTV8u62lsd45qH/+Ox5MhgNNNa4KFxbRqPdiTnKRGONi8T4AX7VbrQaSJoW32qFbiFE/+Hvwq++MuxC72BsyS/Rm5TWPT+pwUP3XKl3l1QRaYto3lZVW8+AnFSU8kxSYIu3MWzSiG8LMSjCLGE9Xkt/1N1b7JvvJLkqtVXPU5jbQtKcaAaMjW5e46hsexUVqx0kpiV06vUevutR4qaHt5uTpHx1nc9LdiI0XDX6B31mBiVZ4DawTnZ+OdYrrrjpsk69puRX3zR0wAhOS53sM8N6pSfpV1ec2W6bo6GRorJvW9xbD5Xw+Qurm38uq6qhLiwMo8lzjbnG0UjisLTmRlXm2BwSB3573Vd6qXzribWSOup5Wrf6M9LHpWGvrG5e4yhxaDwHFu5k2A8yOvV6gZiBVwgRGk52fqWPS+Ord3Z3+jUlv/qfkzYmyRJmZlDKt92ag1IGMGfy8A73r3M0kFdUAYDWmrdWf8HWWs8qzseqa8EWhcGg0Fqjo6wMSPc0oIxhJsaeNbbfNqJarpUEXb9FtaNB142lTlIGJzdv27cuF1t6eKdfLxAz8AohQsPJzq/y/VU4Xc5Ov6bkV/8TtAO3wy1hDBuU1PzzLzKTO9z3UGEZlfY6AArK7bz3jyUoAzganFSisIRb0G6NNTWW6KRYAFJz0kgamNi7byIAeupMx9fstj4HWy4tYPSVQzr9ev4O2BRC9B8nPb+WFGDQxk5PSyL51f8EbSPJH5kteqjGATMn+u6h2r4/nzpHIwCrVm4it7YBgOLqOiyxni+JywADJwwGBXFJcaTnpPVu8T2sJ850OpqheyYzufKH81oNlEyIScQaa2n1/OP8Bz3TAAAgAElEQVS9nr8DNoUQ/cfJzq+mnzv7mpJf/U+vDNxm/ZMhO/CxtMLOrtxCADbnlnCkqhaAgqo6ImKjcGtN/NA0YpJiQSkGj8luHkcVDLZ8uo1nH/kvLosLZ00jpkgzRoeRUWNHseOrne3WbvPltll3EXdGJPb9tdSXNmBNCCNqcATl62q45Vc/bjXAcdjooaz7eB3x02yt7va47rbvS3D0IzJwW/SEjvLrpvt/xIGdB32uP9mWP/l14bwZALz4r5ckw/qxkz5wO5QlxEZx9gTP5aOm31vSWvPJ1gPUlJRR63Cy5oMtmM0mKux16KhwDEoRPziVhMwkwqxhJ70n6sDOgzTqRtIviCc8KYy64gbylpbwxcYvGfajga3OrACfIVNTUYvhG03G3CSiBlmxH64nb2kxNeW17QY4rnt1HbXH6mn8sKHVvCFCCOEvX/l1dNkxlj2/grziw+16h6B9hvmTX689t4iJkybiqndT+OExyTDRTqf+JSilcoFqwAU4tdan92ZRwUwpxdkTBjf/fPnZY9vt89HWAxzLLeBQSRWfLtuIwaAoqaolLCYSDQyZOoqI6AiiYqKITYjp0fpWL1lDznWpRGVbCTNCRKoV7dIUflTebgba1S+u8dlIMoYZSJ+VgC3bMzOtLTuc9FkJ7P53XrsBjvHTbDR+2MCZvz6t+fnl+6tkLSMRNCS/Qoev/LJEh/H1v/Yx8rbMTmWYP/nFpbD6n2uYcPvwdrf1S4YJ8K8n6VytdWmvVdKHnDM+p/nP727YxeNL13KwsIzslAH85OKzqM0rxulysSO/DLtWOOobqTUbsYRbiB+UyMDRmUTYIrB5x0n5GoTY0aWy+pp6orLCMSqNQYFRQXhyGK7aNmscDYmivsb3YEiLxYIpwoir3o0hTOFu0JgijOBW7QY4WhKNOOyNrY8tt8SK4CP51QXdnbMIup9fUVnhaJfvWbR9ZZg/+RWTFeVZF07WkxQdkD7FXvTuhl3c9+o75MxN5sysJI7l2vnVGyv4y1VzmDWldQ9UQ6MTgPW7DrP3s53sLiynzmBk46ZdbD9wgITTosk+IxlHeQMr314J+L5UZomwULXPTuKISABMBqgrasAY0WaNo312rJFWn3VnjcjEUO3EoRrQbo0yKAzVJiKiw9sNcHSUuLBEmVsfW26JFSLk9cScRR0NoobO51f5HjvKqHzOom2NtJL3zWG2L/0MmzfPosPCKXq3HLfFDRpQYHAYUC7FoTX5ZE1Pb55/rzLXcwy5rV90pLONJA2sUkpp4Bmt9fxerKnPeHzpWnLmJpPo/fIlDo6GuZ7ts6aMarVvmNnzVzFtfA7Txn+7PXnZ+4z88UBisiMo+LwCg1ZEDLSybMFyzBX1RA9KxGg2MWbaeExmE1mZA9n/6kGclyQSnhxGXVEDR94pwdngpmhTGdbkMOqLGjiyrJQLL53ps+4L581gwdMvEnumhahUC/aj9VR86mD6peezeclm3HNcOM0OTI1Wjq2txuAwtVs/SW6JFUFE8qsLemLOotVL1pB9XSqxw204G5zEDreRfZxL/b7yK+/tEuJssRxYWMDA2Y2tMuz8i87jo/nLePv/XdM8N97socnc/twbhJ8V6cmvAgd1n9TzwJXn8d8PNlKy5RiWdBNGt5my7dUMzclh94u5DJ6XQfzwmB7LsAZHAw313juoDxVzZNchAOzldqwNTowGA9VuN9HJsa2eZ4uPZuik9ndoh0eGB9VNQv1FZxtJZ2it85VSScBqpdQ3WuuPW+6glLoZuBngmfuu5Oa5Z/RwqaHnYGEZZ2YltdoWnxXFp4VHOn2M6hoHo0facKNJ/k4MRqORtLMGsOHeb1jw4xmUVddSUm5n2TufYa9rIP+bo9TXNXDg1UK0S2OOMeGsd6GdUPB+GY01TsyRJszKTM7o7A5ft66yjsa1tRTWuTCGG3HWKHJGZ5MzOpuXn1hIReExYlPiue6n3wfkllgR1PzKrx//9gbO/960AJQZXPyZs6gwt5ADX+5rt91eVkNdQTS1+fVotxtlMKCUwl5Ww/q3PgVg+NRRxHuncamrsOOqd3N01TGcdS5M4Z7LZqZwMCtzuwwbfsowqhLi+cOiT0iM9vQ+7dx/lJKj1bCkCt3gRoUZUA7FqcMymDwqi/975k2O7C0lNSGWJ2+Yy/mnD+OR1z7ijf99yfaaOiKiIph49qnUFlc119gZWmvKc4uwWT3La7lq6shJ9Iw5TY6y8qPJQ1FKYTIaGOCttaqmjvoGZ6vjbM0t5os2r6u1ZndxBeG2yFbba2rriRqUhMksF4W6wzm+kdMumezzsU59slrrfO/vxUqpxcAk4OM2+8wHPGdoITwFQE/KThnAsVx7c08SwLFcO9kpnV9Q0RZpoXJfDRE5FsJMigaXi+oDDmyRFkwmI0lxNpLibIzOSQVg045dWGdEEBFnwe1yc3hLOYd2l1K5u4aBYxLRShGRGo7RauTd195j/Bljm7uemyxb+C6Zl8QzdlwkJoPC6dZs31bD8oXvcudDt5NsUrxxayY/WVbD4DE52GKjpFEkgpa/+SVTAHj4M2fRl+9s4A8zJtD2HuqFNith4QasgyyEGaHBBfWHHcTYrNw7eiDl1XX8c/WXnHvdBQCEJ8cw+fsp7QZRb/nnbibc6ntw9QP/uJey4nLcLjcAq1evJ+OSBEaMiMBoAJcbNr93jD8sfI93/3QraWYDS2/N4LZltcyYNIL4mEgeu3U2j906G/A0XCqq67r2mZ01knA/1iCNjgwnunW7h+lxNqafMtj3E9pwu90cKa7wp0ThQ9TAjierPmEjSSkVCRi01tXeP88Aft9z5fVdd8+dxn2vvgNzPT1Ix3LtHFhaxF+umtPpY9wx6yz++sqH5FyZzIAhEVTvq+XAa0X8fNa5Pvdv6r0yGD1dz6Onh+POger9NVQcrqL8aA1RA6zY4q0c217N8j+/QkRMFE6ziYTsZLInDObo/qPkDI/mo/lHqDnWSGS8maRTojmw/yjrFn/EJUMMDE22cMmQOj59ay2zbpxNVXk1z/3mWW78w83NA86FCDTJr67zZ3Zpg8HQalLfJj+dcw5/XeHJL9uQCGr21XJoRQk/n3Mug1IGEB1ZC18fbd6/o96r+pp66iscfPbYFuwFtUSlRpI1LY2SfM9Y/AFJcd8e42gxOeOj+fzNoub8ssSZ2Z9fygvL1zN7iIHhSRZmD6lnwbJ13HOtZ66k0go7tzz8EvN/cV2rJbSCmcFgCJlag1psdIcPdaYnKRlY7O1tMAELtdYre6ayvq1p3NHjS9fyaeERslMGeAdtjzrBM79126Vn8tzbH5H/fD57HG6iLAYSMHP7d8/yub/P3qvPq1DhBpJmxpKZlkRdfgOHFxeTlRrHSz/xnD0VlFZSVFbNW298TF1ZLTveqCV2ZCTx58ThcrjZ90kZ7nrNztXr+PWVnmNffVoUV7+2jjMvm8a6xR9hyM9tbjQJESQkv7qoJ2aX9je/2vZeFX5RSuEXpRiNJvYsz2XQdxOJSEuiNr+Brc/sJgorm//xFkcdTi79uafx5nQ0sv/TcjK/m0RGhpWavHoOLiqkvqqBF5av4/0b4wG4/tRI5i3azA9mn0F8TCQvLF9PeWFeq4aTECdsJGmtDwDjT7Sf8G3WlFF+NYraemH5eu6YEs09Z387n9LfPq7s8Ivsq/eq+LMKMi5PwpIShtmscKeEkXLuAAyfeK4qlFbYuePRV5j/i+v4/TXTWLHucxxnKQaMsVFX4KCutIFqm5n6fAcR9dU8taaBTbk1/OHSVC4ZYuD9l99j70eb+ON3DPz6vU8587Jpzb1J0sMkAknyq3smnDmuW5fS/c2vC+fNYOGzr2JJLkQ53cTEW6jaVU1MfDSx51qwpoQR5s2wyCwrgxpi+MXcKUy6/QnOv+kibLFRJGcmY5mqic6KwmgxYswykTErieJ3qhiSAFcvLCDaDPPnpTF7iIEFy9Zx/cVTWfrBJn411chDH25qbjhB6x6mpm2i/5DRXkFu7Zd7yC92sHB7cavtaUV7fIaMr96rGKuVlOwYairqqNWgFCQNiiavtgig3RlUVW09Y8dkU1ptx2AxMCArimFjU3j/l1updYWxZFsNFt3AlfOPYA4z4XC9z6gBmqNlBsZFulr1JkkPkwg1e77aG+gSQk5J4TGf25et20F+iZ35m+2ttmfm7WqVX85GJwd2HKRwZx5jYlKpLimnqNLOgHobyaNHsHH3Pkw6ksqtVVR6n2M2GqmqreeF5etxVJbz1lNv8J2Lz6CytIoJY4ZRU2XH0ViHyWwmflACe4uO8lG5CRNuUiNcTHzyCANs4aQV7QHgnPQGMm0uzklraNWIkx6m/k0aSUHu7cfu8Ps5bXuvzvv5kxzLrWLkiDDCzYq6Rs3X31QxMCGG0go7yz7azL8uS+C2ZZ6u5+yUAThLGhk6OLH5GCX7q5gyOouX77+eefc9wb9mR3Dbslr+/eubuOl383loai2VDhhY0cjzL7yL/dAxzLYINq1ZxyOzYnlk9bpWPUxCBKuJJWWBLiHkTD1nDF/ubn/Xm3XQQC67/fJ22/e/u5kvd+cxLCMJS3E5n/1jMdOHp/PDc8eQcVXrS3F5ReXM/vUz2A9Vk5FhwmJSOJwaZ0YYye5Iln20mfmXJ/Kr97cwYkw26VHh7P7vfpJPT8QcbaV0WxnK4WbquCze+M2NrfLr9b/ejdaay3/2OI+c6SIzzsRF2U7u9/Ymaa3b5aP0JvUv0kjqB4YMiGP5yu2k2xKxZFioOuqgZGUJk0aO5YXl65mVA8aGKmblmFmwbF3zJTvXHE11mANbg4VD7xTzl6vmtBv4eP9Tr3NOegND4k2kRBk5Lc2EwQyxyZ4gScwyUVDSQGxjDf+843HGThlL+pgsBg4fSHxqfIA/GSHamzV55Il3Eq3c+/xqjGNzaHt728zbLyE5I6nd/pG2CF4pquDAu+9y29ljuODU9utkNslIjmNyzkCW79pO5OhEEjMslOQ5qHmvBJfFxCWDYXh0PdeOs3Ikv4Q/3ziH+159hzCXi6piO0Mnx3N4WQn3X3WBz4Hb4OlFyoozYjUZyIozNvcmAR0O9Bb9g9K6F+52lSkAgsqsnz7B518fxGkx0ODShBkVJoeb8UMH4W6s48npYHLW4jRFcOdqeP2vd7Pp60PcM/8tjhaXk54Ux99uvoyJIwYx774nWDTPRkKUiVK7k6lPHsbucJISZcRgALcbSmrdDM/OwN1Y12rfeYuqef2vd7Nh9xE2HyikpMHFsZp6wuNsZJ02hNTBaUTH2U78hkTQuWr0D3yuoB2SJL/89rMFa5h413f9fp7WmvVL1hFfUslv553ZbjqSJj4zrN6NxWzkvR8O6HJ+zVtUjTKHs+dgHokRhk5nmPQm9TEp4yDnHJ//+IwPPvhgz79g3qZeOGjoKq2wc92D/+OCiSOJsHZ+Do0m727YxR1Pv84fXn6PZRt3kBAVydCBiSd+oldxWRVT4yv4y9kGbhtn4kfjLCTGxVLsiuS8tHpSwmp5cG09k1I0YWFhbCtycdHUMby9cj2PnaX5qsDEvdfN4oXl6xlmLuT8oREARIQZKKl2YDaZeP0H6XxyoI7Xb8gg3GKm0BnJ9IENrfY9Vt3A1kInP5g1mTEDE3h18Yc8fctsLh+XRcmuQ3z9yQ72bd7Dlo+3U5JXQlRCNBZrWPNMuiJ4jUma8LtA19BjJL9a6Ux+rdp6kPQOeuC2fLqN5x99kcX/fZuvPt1ClC2KlEGeeWmUUgwaOYgDReXUHylhRIbvXPOVYWGWMExGI5OSnV3Or2PVDRQ5I7lylIlH5yR2OsOGDkruVqaLIBOVDHFZPjNMLredBN0Z+Odr/bf7Xn0HoNN3za39cg/fHKzmqY/rcWuNQSks1kYaXFXsNMLjtfUkR8Llr9UQGeFiRIlnION3kuoYMsDz+4Jl63wOIi8ur6HRBZOeOkqsqaF5MGRpVR55BdYOB5w3fSYvvfsZ91w7g6unjeNq7z71jkYO5B9j1eovWJNfhttgwJwYw6CxWQwckUF4ZLhfn6EQous6k19urdFat+sJ6uz6bxNnTeKFv7zG6IwEhvq4POcrw5xa0eCCyw/rLucX0JxVT62v6HSGATKYu5+QRlIv8zUw2p+uWn/Wf+vI//7fDVx6z98xOpzMnxPBze/U4rZE8t8Hb+HGB5/BGN56+6M/nceNv/03f5qqyYo1MWeIk1++v4Glj//MZ+2lFfZ2gyGP9x5P9JlYLWZGZacwKjsF8HTJl1bYeW/LQb74eBs1BiONEWFEJ8Yy9tzxRERFNE+eKYToOZ3Nr2umjuSR37/IebfNaTWx44nWf9Nas+/LvWxdsYlTkmNJ6uByu68McxhtGAwKc2NVt/Kr6X12NsOa95XB3P2C/M/Sy1oPFDQ0DwYEz5ft8gf+zbHKmg6ff7CwjPis1neExWdFcbCwrNPHeGH5ehLN9cwdbmZ4gpG5w80kmD2Drjva/p2kOgbHGTAozeA4Q/PZmK/XPN579Pcz8UUpRWKcje+fO46/3ziD+Tecz8MXjOfmzASOvPoh7/3lNZY99gYb3lnPscIyemWcnRD9UGfza+KwdF687SI2PLuCYwXfTgdQkl9KTJv8ismKovhICRuWbWDhL//H0j+/wJPXnMP/u/JsYqJ89xL7yjBHnZ0YZe92fp3offrzmYi+RxpJvajpLOz6Uz1nGdef6rldtWXjoqnLtiNNM2i31HL9t84c472NX7M1v47JAxW7ShqZPFCxNb+OTTsPdbA9l5e21HLRy7VM/k8NF71cy0tbalmxfke71zzRe/T3M+ms5AHRjM5J5cGrzmHB7Rfzn+vO5dbMRErfXs+qP73Cyr+/yfql6zm67+iJDyaEaMff/Aq3hDH/pgv5/H/vUXK0BPh2Bu0mznonO1/ch6p1cvWASM5OsxHtquSV9zYetxZfGXa43MGuooZu5Vdn3qc/n4noe2Tgdi/695trfQ4UbBr499B/3uJfc2P4++pDzD77NJ8DABOiIln05pdYksyEx5gpPVjNgaVF/L8rZhIXFd6pY5SUVTEprpIrT08iMc7GoMRoXBhxRSXzvZEmzh4ax+2Lj/GjM9MJt4Sxv9rElcPd/PE8C/dOtTBjiAmjwUClKZ4LJo5q9ZqlVfWMCS/x+R6/M679Io3H+0x87d9ZJpORhNgopo3J5NJJw5g7IYdB2sXBL/axYflG9n25j6OHirAlRBPRwdmq6DoZuN33dCW/TCYjF52Sw1uvfkReUSUjJo5k3asbcWonh1cfpeTzUgyFjfzrtisYk5PKn/+7+IT5Bb4zbMMhBzOGhTNjdGKX82v22ad1OKDbVyb1Vn6JADvOwG2ZAqAXXfKzp8gvLm23PS0pgWmnDoOjX3DP2TH87eNKSD+twwGA727YxeNL13KwsIzslAHcPXcas6aM4m8vr+rUMTqqo7SqnoRoKwXHqkm0uiipN5IabyO3sBKzQRNh1kSFKewNmtpGhcVq5a5557V6zRe2NmAytP/rTktK8DkR5vE+k65MnOmPXQcLeG3DHg4eq8JgiyRuaBoZIzJIy07t1dftD2QKgL6nu/n10trtvLR5D3WVdgqPHMWlnQxOS/A7vzqq5WhpNWYjuNx0Ob9IP807oLtzmRTI/BK96DhTAEgjKQCaBv51Z/6NnjgGwO5DRVx85yO8NS+CyxbV8u7TDxBni/B57H//+iZu/eOzfWLeEK01G3fm8uneAvYUV1JtMJA9dSQDh6S3GngqOkcaSf2HP9lTUV1LrC2iW8c4nv6aX6KHyTxJwaUnumxPdIzOzs10058WcF5yNRPTDTjdsHDDUSqqahlmLmRUkpnvPZfL3LExOBqc/Hft/g7nDQm1rmalFAOT4pg6MoM5pw9l7vhs9OFidq3fxWervuDAtoOocDOW8DDCLDIPyonI5bb+w5/8slrMXTqG5Jc4qeRyW3DpiS7bEx3jby+vYtnqj5g9/ZwOu7CbzsKWzLNiNkCjGy5dVE9mxkAqq6raXYZrujzXnbpDRVVNHau/2s8newvIr3VgSxnAuAtOJXlQ+zlchPQk9SeSX6LPkctt/UtphZ3Lf/Y4v5rcwEObwnjrsf8jPiaS0go7tzz8EvN/cR3xMZF8976nGW08xHXjTGTGGDhU6ebFbU52ujJ5+CdXcPGdj/DUhRbuWOng3acf8DnJW3+RV1TOK+t2cbCqjmOORoafMZrBpwzFGmEJdGlBQRpJoqd0lF9NjzVl2I8fel7yS/QMaST1L397eRUVuz/l2pEuXv7aSOzwM7nn2hntzs6y5j6Ao77e5wDHU4ZnMETn8uNTzPznq0b2qSwW/+UngX5rQaHR6eKdjbtZ83UelY0ubJlJjJ9+KrEJsYEuLWCkkSR6Skf51fRYU4b9Y9EHkl+iZxynkdTpeZKUUkal1FdKqWU9V5noaaUVdpZ+sImLsl1kxpm4KNvF0g83sedwcfPMuU3zeny+4NeMzExk492D2XrfMDbePZiRmYm8+tAtbP9mP5eNMJEZa+CyESa2f7OfvXnFJy6gHzCbjFx2xiie/vFMXrjlQn46OoP8RR/zweOLWfaPxez/ah/ORmegyxQtSH6Fho7y61hlTavZv5d9tJlVT94j+SV6nT+TSf4U+Lq3CunLOpoVuzOzZft7jBeWr+ec9Aay4oxYTQay4oyck9bA/U+9zqwcMDZUMStHsWDZuuaZYxOiPKvTJESZmD3EwG2PvMh3hxvJjjNgNSmy4wx8d7iR+558vYc+kb7DYDAwIjOZ3187jfk/PJ+nL59K+sF81v7tDZb/YzHfbPqGBkdDoMsUkl9dFgz51ZRXLTPs/qdel/wSva5Ta7cppQYCFwMPAff0akV9UEcLRPqz8G1nj7F609fs2FvNsl0GDAZwu6HQ7iLKUssfvx+Hq7GBiwabuHP1ZsKsUZSWt1/w8XBhBS8Va1bua8SgwK2htFZjDjvcsx9MHxQTFc4N50/ghvMnUGmv470v9/PZP7dT7HARNySNU2acRmS03G58Mkl+dU+g86uk1s2w0h1oZx1PTqc5w/6zIZeDR8JZuN3R6rUkv0RP6uwCt48D9wG+Vx8UHepogUh/Fr5t6oL+1VQjD3246bjHmD5pJNPTa7l6fAQ/XHiYBdcO4tY3ixmdqDC56smMM3Goop5ZOeEYM0b6DLeWk7w1b/NOvCY6LyYqnHlnj2He2WPQWrPzYAELnlvJ0doGorNTGHfeBJmT6eSQ/OqiYMivl7fU8kmphakD6lpl2I+nxGHMOL1dhkl+iZ50wkaSUmo2UKy1/kIpNe04+90M3AzwzH1XcvPcM3qsyFDWejHE+uYzpo62d3SMc9IbyLS5mrueOzqGZ/ZYB4+tLSXR6uLUxw/j1rDpkJtF2xTRVkVVvQZTIyNK9vh8zaZjtO1hSivyvb84MaUUY3LS+GtOGgDfHCpi4Zuf8Gm5HdugJEadPU6mF+gFkl/dEwz55bl9P4+dRnh2fcMJM0zyS/SkE97dppT6M3Ad4ASsQDTwltb6+x0+Se4OATqeVdafmV+bbod95Mw6JqSa2FLg5P514Tz7m5s7PEZphb3VLLQv//kufvHEyzLTbJDam1fMGxv3sqOonIj0BEacOYb0wWmBLssvwXp3m+RX1wVLfh1vFm3JMNEjunN3m9b6F1rrgVrrLOAq4IPjBoxo1tHA6I4GHC5Yts6vgdgdHeOBp9/gmjEmxqWYuWaMiVsffqHDfUXgDc1I4hdXnMHLP5nNLycNRa3bzpI/LWT9knWUl1QEuryQJvnVdV3JL2g9GLsn8uu+J1/vsBbJMNHb/Jonydtdfa/WevZxd5QzMeDEC8u21bRwZMu5jGb99Al27M0lMaL1QEaDKYzEmPar2cdGR5Obd4RPbowiNcpIgd3FlPlVxETbCDMb272ezDQbvD7/+jCLvzzAgQo7A4akM3H2ZKwR7f/dBINg7UlqSfLLP13Jr7azZXsGYncvv876n715Fu2OXlOIbpHJJENDaYWdS+/5O5G6hloVyZK/3+M5U+pgEKKv6+vfve9pxpoO8fvzvu2C/s0HNWx3ZspkaiFs6/4Cnl27naL6RnImDmPopBFEBdFlhlBoJHWa5FeXtc2wGWecQuSx7ZJfIrgdp5HU2bvbxEnwwvL1JJrrqaxpJCGy9UDGzg5C/Gp3HpsaGvnvV60v05jD8nq1dtG7xg9O5anBqQC8/+U+lv5nBaVKMerc8WSNzsIc5nshUSFOprYZ9uYHX2AyaMkvEbKkJylINJ2BGR2VzJ8Twc3v1OK2xLDk7/fIwEThU72jkUXrdrJyWy7hGUmcNntywKYUkJ4kIRkmQlZPLEsielfTGdjc4WaGJxiZO9xMgrn+pAxM9GfmXBE8rBYz1583gZd/Opc/nD2aA698wDuPvMauz3bJLN/ipAtUhkl+id4kjaQg8d7Gr9maX8fkgYpdJY1MHqjYml/Hqo29v5JCy1lvRehRSpGWGMOjN0zn+R/PYOyxCj55/C1Wzl/O0X1HA12e6CcClWGSX6I3SSOpC3rjzGXm5JHccVYiZ4wayKjsNM4YNZA7zkpkxuSRvVpL20Uj5WwstJlNRr531hievfUiHr5gPI4Pt/D2w6+ycfkGeuXSughJwZJhkl8i2EkjqQt648xl7Zd7WLjdwelPFzf/Wrjdwdov9/RqLa1nvZV5R/qSlPhofjnvLF6+dRYXWk2s+fNCVv7rHZl7SQRNhkl+iWAnd7f5yZ81i/zRlbk+ultL0/MXzfMsaXX9qZHMW9Rz70kEB6UUM08fxszTh1F4rIqnX/+YNSUVjJ41iZGTRgS6PHGSBUuGSX6JUCA9SX4KpjOX7tYis9j2Pynx0fzh2mm8esccsvOKWPHQy3zw4vvU2usCXZo4SYIlwyS/RCiQRpIfms5crj/Vc5Zy/amRAbsO3hO1dPUSn4V+A3IAABheSURBVAh9JpORGy44hRfumMM94zPZ9uxy3njoZfL2Hgl0aaIXBUuGSX6JUCHzJPnhby+v8mv26xMprbBzy8MvMf8X1zV3D/vadjJqEaK2voGnV3zOxqOljJp5OsMmDMFk7twVeZknKTT0ZG50lFWdyTDJLxFUZMbtnuHv7Ncn0nLQYtPzfW07GbUIEWEN4+eXTaWh0cnS9bt4Y9lGkscP5vSLJhFmDQt0eaIH9GRudJRVnckwya/Q5nS62HukJNBldEqcLYKU+OguP196kgKktMLOvPue4F+zI7htWS2v//VutNbttskARBFIG77J48mVXxAzYhCTL/kOlnCLz/2kJ6l/8ZVf8TGRHW4XoafR6eJIcQVfHSjms28KKG20YLF6FjaurW8gKnsCRlPw97NUH91PuP0w9192Glmp8b53kp6k4NN60OK3s9K23SZnVSKQpozIYMqIDD7fc4R//v1NTBmJTL38bKwRvhtLon/wlV/3XDujw+0i+NU5GsgvqeTNDQfYU2inQVmJHDSG6KSJZF8zhWFhofudr7VX89ulzxJZ+xU/vWgswzOTO/1caSQFgK9bVy9/ZRNurVl8TUzzNrmdVQSL04cN5H/DBrJlfwH/fHIxzoQYzr76XKwR1kCXJk6yjm69n33WBLklP4RUVNeydnseB4sq2XHUjsMQQVT6EHLOuJ3T4uIxmfrOotkRUTbOvPYe6mtreGjJf4is2cHtM0czNiflhM+VRlIA+Lp19Zz0BrYXuUiIim/e1nQ7q5yJiWAxYXAq8wen8nVuEY8/tRRHbBRnX3NeoMsSJ1FHt97f/9TrHd6SLxkWWE6nC0ejkyXr97DlUBmVjSbqrQmkDD+V5DPGMCkmDoPRGOgye501IpKzrvkpjrpa/rZsAeYVq7lt5mhOSRnX4XNkTFIAXPKzp8gvLm21rbi8mkYXpCfYWm1PS0ro0kSTQpwMB46W8sg7m3jmhXdlTFI/4Su/AEqr6kmIbt+zKBl28mmt2X6wiPW7jvDVkRqqnCasMUmkjj2TpEFDiIyODXSJQcFRV8vWVa9xes4AbvnJ//nMsBM2kpRSVuBjwIKn5+kNrfVvj/skCRkh+pepdwZlI0nyS/QHjoZGlm/cy6b9x6hzGcmv0cQPGsbA8eeQmJ6JwSBTIh7P6LRopg5J6PLAbQdwntbarpQyA58qpd7VWm/o0SrFcXV2/iQhRCuSX0FA8qtnbd13lEPFVXyws4jSWjcqMp60U6eTPDsHW2w8YwJdYB9ywkaS9nQ12b0/mr2/5EzrJOvs/ElCiG9JfgUHya/u2bgzlw17i9lbVEOZK5zo9GHEZU9i8JVDGB0RFejy+rRODdxWShmBL4AhwNNa6429WpVopbcWpBSiP5D8CizJL/8UlVWx82Ahy77Kp6TGjTkqDkv6KFLGzGD87KGBLq/f6VQjSWvtAiYopWKBxUqpMVrrHS33UUrdDNwM8Mx9V3Lz3DN6vNj+SuYeEaLrJL8CS/KrY1prtu3LZ+3OfPKO1VJg15hjkxkwbCJDrr6dkZbQnZuor/BrCgCtdYVSai1wIbCjzWPzgfmADHzsQR3NSSJnY0L4R/Lr5JP8aq24vJqScjtvfrafg6W1aGsM4RljSR1zDsOzhjM80AWKdk7YSFJKJQKN3oAJBy4AHun1ygTQ8ZwkcjYmxIlJfgVWf82vvKJynC43n+8rYsfhMuobnBTVm9ARA4geOJSM82YzNfHEExmKwOtMT1IqsMB7Xd8ALNJaL+vdskQTWQhSiG6R/AqgvpxfRWVVfLT9CPuLqkBr9hbXYY2Kxul04rSlEx4diy1hCoMumwTAkBBe1qM/k8kkhRDdF6TzJHWJ5JfogL3WweL1u1mzoxASh5I6/BRShnhma7aGR/SLWav7ou7OkySEEK04nS4aXS4AducdY8LUABckRC9pdLr4YMtBXt94mFpTHNmTL2TSzWMxS89QvyCNJCFEKy17lzd9c5Q9R8vQWvNFbjmYwgEosTdgjUsFIMw2gH8HpFIheofWmhWb9rJqWz7F9WZSxp7B6T/6CUaT/JfZ38jfuBD9UJ2jgRUb9+LW4HK7+XRPKaYwK1pDQVUj1hjPQsu25CxSRkwHYMjkJKwycZ3oB+789xosY2cz5MqbGCP/5vs1aSQJ0cdsP5DPoaIqAL45WsHRajcAFdV1uCISMBgUbq1IO20GYVZPz9CoSTmYvXOyyJIGor8zWiMZMeX8QJchgoA0koQIEfWORj7bcRDwjJN4d3sRBqMZrTUF1S6sNs/K3mFx6QwY7An4yNNjGDUwO2A1CxGMKu11PLNyK0XVLp+PF1a55WRBANJIEiLg3G43n3+Th8vtRmvN8i+P4HB7brQ4VlWHwZYEeBpGA8aei8kcBkYYfNU4LN6eoJEBq16I0FBcXs2KTfv5eHcJzvBEhl1wIyMyfJ9AjDjJtYngJY0kIXpJnaOBbw4VNf+8autRjtkbACiqasAc7Rn342x0Epl9KpaoGAAGXnwNttj4k1+wEH1MnaOBj7ceZPGmQ9gtyWROuZjvnD8h0GWJECKNJCH8dKiwjNp6T2Mnt7iKD3fko5TyXvZyEx7tuexV3+AiduhEDAbP3CnJk2cxNC0TAFmmUoje0bQe2j9X7qDWHEf86DM55ea7MRgMgS5NhCBpJAkBlJRXU+Nt+LjdmjfW76XG4RmvUFRRi44Y0NwQagxPJDIxDQCzNZMR192NUp7LY9L4ESIwjpZUMH/lNvZXQGTWBEZf/xDhkbZAlyVCnDSSRJ+ktaakwo7b7Znzp6yqhrc/P9T8eFF5DfVGG8pgQGtNrSGKqMT05scHTrmZ5PhkAFIMBkwm88l9A0KIEyopr+Z/q7ezq8iBihvEsLNu5Ry5UUH0IGkkiZBRVVPX3OjRGt7ZuJeK2kYAnC4XOwvqCI+IAMDR0IjTlo4l3LvSuNHKsHPvxmj0NHYGm0xYwiNO/psQQnRLdU09b6zbzfq9x6gLG8CYWbdzRnJac2+uED1JGkkiIBqdLlwud/PPX+wrZNfh0uaf88vslDjMKOUZR+BoaKDOEo/V2+jRWpMyciaxKYOanzMpLl7GHQjRx9Q7GnE0Onlz3W62HiqnhDhyvnMRp5412nOnpxC9SBpJoke53W7e/PRrHA3fzj+SW1JNcZ2RphM9raG4xk1EXGLzPpGJA0kbM7v554iwMMbHJ520uoXwR02dgyXrd9N2ffA9BZWU1zqZlDPAZ8/G+JxkxuYkn6QqQ8/7X+6nsKyGgvIaDldp6uobcYQnYDKHkTHxMgZPGcgYGWckTiJpJAmfcgvL+HxPQattu/MrKalrHfzFVfUYoxJabUubcA6R6d82cCyjwhmblNZ7xQrRg+5+7rNWP+dXNWKJimu9k1JkTplDmCW81WbbWBuJ4ZEcLCn0eexPt31CzYfb2213uZyEN1Rgi7S2f6zRwVnDEzD4aHQNTo3llKHp7bYHs/1HS/lqfxFOl2c5HKPZQkG1G0tUDAk5Y4jLHol5eBjjUjMCXaoQKN32VKgnrH+yFw4qOqu4vJrNu4+2255bXM2+Yw0ovg1bR2MjZU5r86SETQzh0aT///buPraq8o4D+Pd3720rQoGVAqXQifiOxlfCjGTEObcpdsxlL0oEx6Y06jAQSZwvy4wbZs4/CChspiojTkFjdAnp3IvJXAjJRFdEN2EGBmjLSy+3hZYifbnn/vZHL9Hb85z23N5zeu495/tJGtvn3j73OQ1+8zvPec5zrrg+52z47MoJmFRTWoFMo2PZ/FmhWRDy3Lb9RZVfvT2nkWw5YHzt2N5mnE612tozGUXsVApV48fYXuvv78PXL5mMsrK47bVpVWNx9YXeFCfv7P4E7V2nsWNfCt39MbR19aKschLiZ38JtZd/FSKCmnPOQ1l5hSefRzRSl9aOx3XnVxszjDNJAWtpO47/HUo5vv727jZ095tfO9rVj/LKKlu7xitQc8XXbNP9FRefjdmzLipovEQ0uirOGoO6C2YbX3NqH0p/Xy927N1tfO3Ex3vQs/0D42uZk8dQPd4+05VOp3FOVQVaOy10nupBeszA2sAxtRdiwrTzUPWN6aibNIW7wlNJGrZIEpE6AC8CqAGQAdCoquv8Hpjfjnd9ho8/bRv+jQbv7U/hk/aeYd9nWRm0nY4NuVeHVlSi6sJrHV+feuO5mFFtXsPArfOJhhbW/CpEWXkFZl16lflFp/YhWOk0Dh/ci0vOZxlE4eNmJikNYJWq7hSRSgDNIvKWqppPRQAs+/37ng3QL71WDJMuvhYYwW2jEy+uxUUuZ2TyP88jIg/lnV+Un3gigToWSBRSwxZJqnoEwJHs9ydFZA+A6QAcQ2bukp97NkAiopEaSX4REZ2R15okEZkJ4CoAO/wYDIXfr5cvQnf3SVv7uHGVeHj9lqLtm0of84sKxfyKHtdFkoiMA/A6gJWq2mV4vQFAAwAsXrUa8xcu8myQFB7d3Scx6+5nbO37n7+/qPum0sb8Ii8wv6LHVZEkImUYCJiXVfUN03tUtRFAI1B8t9ASUXQxv4hopIZ9hoMM3Ef+AoA9qrrG/yEREXmD+UVEhXDzoKt5AJYAuEFEdmW/Fvg8LiIiLzC/iGjE3Nzdth1AaHbTpdHhtAixI3kEFQf32to725031HSrsz2FQ4a+O5JH8OjSels7F0SGH/OLRsqUYR3Jo0js2414oiynnfkVXtxxm3zhtAix/VffRXuT/aqHZtIFf6Zm0ua+LYsLIokoL6YM69qwHMnXHrc96YD5FV4skmhUxcrKcfny39navfgffuLkGmOYND95W8F9ExFNvmUF2pvW2DKM+RVeLJLIxulS2cmOY6ismpzT1tmegmbSmDi5Jqf9hMNT0DP9vdi59m5be7rrWMFTyieOHcWH6+81fGafq98notKXT34N1W7KsGTTWlgn220ZxvwKLxZJZON0qaz5ydts7YcO7kV70xpbu+PZTyyB2p+stzW3PLO44ClllRhql661tR94+g7XfRBRacsnv4ZrH0zTvZhy22qUV385p535FV4sksg1q888C2SdOu66D7X60brhTtMrxkWLpgWR937rSmg8bu8hncbp5KeGrt1ve+PVrrfcPZeouDjmV1+v6z7SXSkkXzU9dst9fgEOGaZAy6YHUL1g5aD2/Lbt8iJ7mF+fY5FErkncPguU6e/F4cZltvfGJGY8i5J4Gabfu8nW3rrhTlQMOjsDgIxmbG0aj6Nu+Uu29pZnFiMxcapp5MaxjBtXaWvzatdb7p5LVFxM+QUM5IaJKcMknig4vwBzhvWlPkVq61OGDHOfX4A32cP8+hyLJPLFhEnVeGJTk639npuvgcTcbM81MmXlFba2WDxuHAsRkRNThvmdX4A9w5hfwWKRFGFOU6qpwy04YZiWVst+m2vytcegmYxtwWHvcfPeHmqlkek3T2/39fbk/JzuTCJjWbivfu6gTkb/qREnjh3lXiVERcSL/DrTblow7ZRhRzc/hCk/eNzWPji/ACBjpe35BYx6hn30/Cr0pJK242F+DY9FUoQ57mX0xPdQvfBBW3vblkfQl8pd85Pp6cbUH/4S8bLczdWObH7Eoe/vQ+Jltna10mjb/LOcNqu7A4kJU1G3NHfvkAPrnBYyKg5vWmlrFYcp73yoxDj9TFREvMgvYOAS2qT6B2ztpgxL7N2N9j8/bcswU34NtFs4Z8VmW7sxw0RgnTphyzAv8svq+Qw1t6/G9JkX5LQzv4bHIikApbsoTm13dWR6Bo7DSueepekQZ0pO09VWd0duH5kMgHzOuMS4B9P7v1nEWSAij4Qpv860D84vYIgME3OGDc6vfCXGT4XEYrYMY34Fi0VSAIp/UZw4hImgZf2gRY4KJKpqESs7y2Xfary7TeJx1DY8l9OW7mxDautT9h6stH0cAGD1G/+Gmkm7/nuPG1dpbI9JfusQnPpxWmxJVCpClV9n3j/lXFc9KxTprpQtw0z5BQCHnr3L3I8pw3Tg7t/Bf8d88gswZ09/dwfihjuCnTC/PsciifLy7JvNOT/fs+CaPAokACKYef8fbM0H1t2BWJl90bVJvLwCv2161/VHms7CnDidmeXTx1D9EFFwBucXMJBhbonEkBhfjbofr8tpzye/gPwyzIvseXRpPWrqZhXUR1SxSKLCaOnuCNvZnuI0NlHUlWiGMb9GB4ukCHOaUlUrjcMbl9t/wfAQR82k0bbZvkjSNG0MAGJZ+GS9aTNJGO56G1jIOPj9iZg3D3XPaKbgy3BRnH4mKgZe5BeQX4Z1JI9AHTLMfNeuGt/rRYYxv0YHi6QIczrbWP7tazHlVvudGslXf2Frk3gC035k30q/Zf3ivPb2uK9+Lsorci/blU/5MmLxeF6X1vzCMzOi4uJFfgHeZJgpvwAgFk8wv0oci6QAFHtVr5k02pvWGNttLMt81mZZeX1mIia+nXE5/b29uLWWKGpClV+AJxnG/AqvYYskEdkIoB5AUlUv839I4VfsVf3EyTWup3EnTZvhyZ0uT2/dkdf78+HVYmwqTcwwb4UpvwBvMoz5FV5uZpI2AVgP4EV/h0KUq3T3Y6EiswnMMAoAM6z0DVskqeo2EZnp/1CoFPk59e73fizFftmAvMEMo6GUaoYxv0YH1yRRQUr5bKiUx05E3ijVHCjVcZcaz4okEWkA0AAAi1etxvyFi7zqmkYZz1Aoaphf4cH8Ii95ViSpaiOARgB4btv+0X9MO3mGZygUNcyv8GB+kZfyeyAVERERUUS42QJgC4DrAVSLSCuAx1T1Bb8HRsRpc/ICM4yCwgwrfaLq/cwyp6uJomXZ/FnePCumCDC/iKLl0trxuO78amOG8XIbERERkQGLJCIiIiIDFklEREREBiySiIiIiAxYJBEREREZsEgiIiIiMmCRRERERGTAIomIiIjIgEUSERERkQGLJCIiIiIDFklEREREBiySiIiIiAxYJBEREREZsEgiIiIiMmCRRERERGTAIomIiIjIwFWRJCI3icjHIrJPRB7ye1BERF5hfhHRSA1bJIlIHMAGADcDmA1gkYjM9ntgRESFYn4RUSHczCTNBbBPVferah+AVwB8x99hERF5gvlFRCOWcPGe6QBavvBzK4CvDPUL1ZXlhYyJiMgrzC8iGtLYCudSyE2RJIY2tb1JpAFAQ/bHl1R1iavRlSgRaVDVxqDH4TceZ3hE4RgNmF8OovDvIQrHCPA4/eTmclsrgLov/DwDwOHBb1LVRlWdo6pzAFzi0fiKWcPwbwkFHmd4ROEYB2N+OYvCv4coHCPA4/SNmyLpPQAXiMi5IlIO4HYAW/0dFhGRJ5hfRDRiw15uU9W0iCwH8FcAcQAbVfUj30dGRFQg5hcRFcLNmiSo6psA3syj39BfG0U0jhHgcYZJFI7RhvnlKArHGYVjBHicvhFV2xpGIiIiosjjY0mIiIiIDDwtkkRko4gkReQ/XvZbTESkTkTeFpE9IvKRiKwIekxeE5GzRORdEfkge4yPBz0mP4lIXETeF5GmoMfiFxE5KCL/FpFdIvKvoMdTjJhf4RGlDGN++fzZXl5uE5H5ALoBvKiql3nWcRERkWkApqnqThGpBNAM4FZV3R3w0DwjIgJgrKp2i0gZgO0AVqjqOwEPzRci8gCAOQDGq2p90OPxg4gcBDBHVVNBj6VYMb/CI0oZxvzyl6czSaq6DUCHl30WG1U9oqo7s9+fBLAHA7v6hoYO6M7+WJb9CuXiNRGZAeAWAM8HPRYKFvMrPKKSYcwv/3FNUgFEZCaAqwDsCHYk3stO4e4CkATwlqqG7hiz1gJ4EEAm6IH4TAH8TUSas7tLU8SFOb+AyGQY88tnLJJGSETGAXgdwEpV7Qp6PF5TVUtVr8TADsVzRSR0lx9EpB5AUlWbgx7LKJinqlcDuBnAT7OXliiiwp5fQPgzjPk1OlgkjUD2GvfrAF5W1TeCHo+fVPUEgH8AuCngofhhHoCF2evdrwC4QUReCnZI/lDVw9n/JgH8EcDcYEdEQYlSfgGhzjDm1yhgkZSn7ILAFwDsUdU1QY/HDyIyWUQmZr8fA+BGAP8NdlTeU9WHVXWGqs7EwOMq/q6qiwMeludEZGx2kS5EZCyAbwII7R1c5CwK+QVEI8OYX6PD6y0AtgD4J4CLRKRVRO7ysv8iMQ/AEgxU7buyXwuCHpTHpgF4W0Q+xMCzr95S1dDeXhoBUwFsF5EPALwL4E+q+peAx1R0mF+hwgwLj0DziztuExERERnwchsRERGRAYskIiIiIgMWSUREREQGLJKIiIiIDFgkERERERmwSCIiIiIyYJFEREREZMAiiYiIiMjg/wUx8n5fgd4iAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 以python自带的鸢尾花数据集为例\n",
    "iris = datasets.load_iris()\n",
    "X, y = iris.data[:, 1:3], iris.target\n",
    "\n",
    "clf1 = KNeighborsClassifier(n_neighbors=1)\n",
    "clf2 = RandomForestClassifier(random_state=1)\n",
    "clf3 = GaussianNB()\n",
    "lr = LogisticRegression()\n",
    "sclf = StackingClassifier(classifiers=[clf1, clf2, clf3], \n",
    "                          meta_classifier=lr)\n",
    "\n",
    "label = ['KNN', 'Random Forest', 'Naive Bayes', 'Stacking Classifier']\n",
    "clf_list = [clf1, clf2, clf3, sclf]\n",
    "    \n",
    "fig = plt.figure(figsize=(10,8))\n",
    "gs = gridspec.GridSpec(2, 2)\n",
    "grid = itertools.product([0,1],repeat=2)\n",
    "\n",
    "clf_cv_mean = []\n",
    "clf_cv_std = []\n",
    "for clf, label, grd in zip(clf_list, label, grid):\n",
    "        \n",
    "    scores = cross_val_score(clf, X, y, cv=3, scoring='accuracy')\n",
    "    print(\"Accuracy: %.2f (+/- %.2f) [%s]\" %(scores.mean(), scores.std(), label))\n",
    "    clf_cv_mean.append(scores.mean())\n",
    "    clf_cv_std.append(scores.std())\n",
    "        \n",
    "    clf.fit(X, y)\n",
    "    ax = plt.subplot(gs[grd[0], grd[1]])\n",
    "    fig = plot_decision_regions(X=X, y=y, clf=clf)\n",
    "    plt.title(label)\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "307.2px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
